it-swarm-vi.com

Xác thực HTML: có đáng không?

Những lợi thế và bất lợi (nếu có) của việc đảm bảo rằng tất cả các trang xác thực so với việc có HTML không hợp lệ, tuy nhiên hoạt động trên tất cả các trình duyệt chính?

Ngoài ra, việc có HTML hợp lệ sau khi Javascript thực thi cũng quan trọng không?

52
Thomas Bonini

Tôi nghĩ rằng nó chắc chắn đáng làm , nhưng bạn không bao giờ nên là nô lệ cho xác nhận - đó là trò chơi của kẻ ngốc.

http://www.codinghorror.com/blog/2009/03/html-validation-does-it-matter.html

  1. Xác thực HTML của bạn. Biết ý nghĩa của việc đánh dấu HTML hợp lệ. Hiểu các dụng cụ. Nhiều thông tin luôn luôn tốt hơn thông tin ít hơn. Tại sao bay mù?

  2. Không ai quan tâm nếu HTML của bạn hợp lệ. Ngoại trừ bạn. Nếu bạn muốn. Đừng nghĩ một chút rằng việc tạo HTML hoàn toàn hợp lệ quan trọng hơn việc chạy trang web của bạn, cung cấp các tính năng khiến người dùng của bạn thích thú hoặc hoàn thành công việc.

42
Jeff Atwood

Tôi coi HTML hợp lệ là một mục tiêu đáng giá, nhưng không xem đó là mục tiêu tất cả và cuối cùng của việc xây dựng các trang web tốt.

Bí quyết là, đánh dấu của bạn có thể hoàn toàn hợp lệ, nhưng nó có thể không phải là ngữ nghĩa - ví dụ: sử dụng bảng để bố trí hoặc điều hướng. Có sự khác biệt giữa mã hợp lệ và mã ngữ nghĩa.

Một lưu ý khác, nếu bạn sử dụng quảng cáo hoặc tập lệnh bên ngoài, họ có thể chèn đánh dấu của riêng họ để có cơ hội thực sự gây rối với chính bạn.

32
Grant Palin

Tôi nghĩ rằng nó đáng giá, vì tôi đã bắt gặp nhiều lỗi đánh dấu và logic bằng cách tìm kiếm xác nhận. Đó là một trong những điều "cần nhưng không đủ". Đánh dấu hợp lệ, như mã biên dịch (hoặc kiểm tra qua JSlint) không có lỗi, cảnh báo và gợi ý, là bước đầu tiên tốt để làm cho đúng.

22
Alan

Điểm cộng lớn của HTML hợp lệ là trang của bạn sau đó dễ truy cập hơn vào những thứ khác ngoài "trình duyệt chính". Tất cả các "trình duyệt chính" đều có cách giải quyết vô tận để xử lý tất cả các rác không hợp lệ cư trú trong WWW. Tuy nhiên, việc sử dụng HTML hợp lệ sẽ giúp, ví dụ, nếu ai đó đang sử dụng trình duyệt dành cho người khiếm thị hoặc truy cập các trang của bạn ngoại tuyến, v.v.

9
delete

Bản thân việc xác thực không quá quan trọng, vì một số trình duyệt tuân thủ 100% và thông số kỹ thuật không rõ ràng 100% về cách diễn giải các quy tắc.

Tuy nhiên, HTML hợp lệ đặt bạn vào vị trí tốt hơn để thích nghi và cải thiện trang web của bạn. Khi các tiêu chuẩn di chuyển, chúng thường sẽ di chuyển về phía trước và nếu trang web mới của bạn hợp lệ, thì việc cập nhật để hỗ trợ điều mới nhất sẽ dễ dàng hơn.

Dưới cùng, có giá trị giúp dễ dàng đứng đầu trò chơi và tương thích nhất có thể với đối tượng rộng nhất.

8
MrChrister

Cách tiếp cận tốt nhất là tìm hiểu HTML không hợp lệ nào xấu và HTML không hợp lệ nào không quan trọng.

Ví dụ: việc quên đóng thẻ <div>rất tệ, vì bố cục của bạn gần như chắc chắn sẽ bị hỏng trong một hoặc nhiều trình duyệt.

Tuy nhiên, sử dụng <br> thay vì <br /> trong XHTML không thành vấn đề - tất cả các trình duyệt sẽ diễn giải cả hai như một ngắt dòng mà không gặp vấn đề gì. Sử dụng thuộc tính target trên các liên kết là không hợp lệ, nhưng trường hợp xấu nhất là trình duyệt không mở liên kết trong một cửa sổ mới.

4
DisgruntledGoat

Một lý do để kiểm tra trang web của bạn để tìm HTML hợp lệ là nó đảm bảo rằng các công cụ tìm kiếm sẽ có thể lập chỉ mục đầy đủ và xác định ý nghĩa của các trang của bạn. Nếu họ không thể làm như vậy do HTML không đúng định dạng (mà các trình duyệt chính có thể hoạt động vì lý do lịch sử) thì bạn có khả năng giới hạn thứ hạng công cụ tìm kiếm của bạn.

Cũng có suy đoán rằng trong khi các công cụ tìm kiếm chính làm tốt công việc xử lý HTML không đúng định dạng, họ cũng có thể gán "điểm" chất lượng trang cho tính hợp lệ, ảnh hưởng đến khả năng xếp hạng cao như nội dung của bạn.

3
JasonBirch

Tôi thực sự không nghĩ nó quan trọng nữa. Tôi từng là nô lệ cho việc xác nhận, bây giờ tôi hiếm khi kiểm tra nó. Có lẽ tôi đã bị kiệt sức vì đảm bảo trang web của mình hợp lệ hoặc có lẽ tôi không quan tâm nữa vì sẽ không có ai khác làm thế. Tôi có thể đảm bảo 99,9% khách truy cập của chúng tôi thậm chí không biết đó là gì cũng như thậm chí quan tâm nếu họ đã làm. Phần mềm trình duyệt trong tương lai có thể, nhưng khi ngày đó đến, tôi sẽ lo lắng về nó.

3
Ben

Khi chạy trình xác nhận, bạn sẽ cần kiểm tra các lỗi mà nó cung cấp cho bạn trong từng trường hợp cụ thể. Xác nhận có quan trọng không? Đối với tôi, vâng, nó rất quan trọng. Nhưng nó là một yêu cầu? Không.

Những việc như sử dụng cùng một ID nhiều lần (thay vì một lớp), đặt các phần tử mức khối bên trong các phần tử mức nội tuyến (thường các phần tử này không phù hợp theo cách này về mặt ngữ nghĩa), thiếu các thuộc tính alt trên hình ảnh (khả năng truy cập kém cho người khuyết tật ), đều quan trọng. Những thứ như thuộc tính không xác định trên thẻ là KHÔNG PHẢI quan trọng. Ở tất cả. Các khung Javascript như Dojo hoặc thanh phương tiện truyền thông xã hội Meebo khủng khiếp đó sử dụng các thuộc tính tùy chỉnh làm móc nối và thông số kỹ thuật HTML nói rằng những thứ này được cho phép và bất kỳ thuộc tính không xác định nào sẽ bị bỏ qua. Trình xác nhận không bỏ qua chúng, tuy nhiên, nó ném lỗi. Những lỗi này có thể được bỏ qua.

Khi xác thực, đừng chỉ cho rằng nếu bạn có lỗi thì bạn đã làm sai. Ngữ nghĩa là vô cùng quan trọng, và thực tế là HTML hợp lệ thường không phải là kết quả tự nhiên của việc có ngữ nghĩa phù hợp.

3
Bryson

Một điểm chưa ai đề cập là HTML không hợp lệ có thể khiến thời gian kết xuất chậm hơn trong khi trình duyệt đang cố gắng hiểu ý nghĩa của HTML không chuẩn khi hiển thị.

2
BradB

Xác thực là hữu ích vì nó có thể giúp bạn phát hiện ra một số lỗi khó bắt như

<input name=foo value=<?php echo htmlspecialchars($_GET['foo']); ?> />

hoặc hành vi trình duyệt không thể đoán trước (ví dụ: đặt các thành phần khối trong a đôi khi có thể phá vỡ theo những cách xấu xí trong Firefox).

2
Tgr

Một số lỗi xác thực HTML có thể gây ra các sự cố bố cục không rõ ràng (ví dụ: các thẻ được lồng/không được đặt sai), lỗi JavaScript (ví dụ: sử dụng id nhiều lần) và các vấn đề đối với một số người dùng (ví dụ: không bao gồm thuộc tính alt có ý nghĩa trên hình ảnh) .

Nếu tất cả các trang của chúng tôi xác thực, thì đó là một kiểm tra tự động Nice mà bạn có thể làm để loại trừ các nguồn lỗi. Nếu bạn để lại một số lỗi xác thực vì bạn biết rằng chúng không gây ra bất kỳ tác hại nào, thì séc của bạn không còn tự động nữa: bạn phải xem xét từng lỗi và nhớ rằng nó không sao. Cá nhân, tôi thích nó khi máy tính giảm số lượng công việc tôi phải làm hơn là tăng nó.

1
Paul D. Waite

Một điểm không ai nhắc đến là sự phát triển trình duyệt trong tương lai. Mặc dù tất cả các trình duyệt ngày nay xử lý đánh dấu không hợp lệ tương đối tốt, nhưng điều đó có thể không phải luôn luôn như vậy.

Các nhà sản xuất trình duyệt trong tương lai sẽ đảm bảo trình duyệt của họ hoạt động theo tiêu chuẩn HTML/XHTML, vì vậy đây là điều mà các nhà phát triển web cũng nên đạt được. Chỉ vì một chút đặc biệt của đánh dấu không hợp lệ hoạt động bây giờ không đảm bảo nó sẽ hoạt động trong các trình duyệt trong tương lai.

1
Loftx

Hiệu lực giúp bạn tránh sự không tương thích và giúp duy trì mã. Trình duyệt phục hồi từ các lỗi đánh dấu, nhưng đôi khi theo những cách rất không trực quan.


  • Dựa trên DTD (HTML4, XHTML1 @ W3C) - Có thể không đáng. DTD là nguyên thủy và, ví dụ, không thể kiểm tra tính hợp lệ của hầu hết các thuộc tính. Bạn sẽ khó hiểu các lỗi về các thực thể và lồng nhau.

  • Trình xác thực HTML5 - . Chắc chắn rồi. HTML5 thực dụng hơn và cho phép một số cấu trúc vô hại từng là lỗi. Trình xác nhận của OTOH Henri kỹ lưỡng hơn và tốt hơn trong việc khám phá các vấn đề thực sự.


Hiệu lực của mã do JS tạo có thể quan trọng, vì các trình duyệt hoạt động trên DOM, bất kể nó được tạo như thế nào. Nếu bạn sử dụng document.write(), thì bạn thậm chí phải cẩn thận để có được cú pháp đúng (nó đi qua cùng trình phân tích cú pháp như nguồn trang).

1
Kornel

Ngay cả khi HTML của bạn hoạt động trên tất cả các trình duyệt chính, điều đó vẫn đáng làm vì đôi khi nó có thể gây ra sự cố với trình thu thập công cụ tìm kiếm như googlebot. Ví dụ xem điều này:

http://www.codeproject.com/KB/server-man Quản lý/Google_Indexing_Pro Hiệu.aspx

1
Mee

không có bất lợi về việc có html hợp lệ. có một lý do tại sao có một thông số kỹ thuật ở nơi đầu tiên và tại sao rất nhiều nỗ lực được đưa vào thông số kỹ thuật để xác định cách mọi thứ nên hoạt động.

về cơ bản, tất cả những gì bạn đạt được là để đáp ứng các thông số kỹ thuật. điều đó có nghĩa là, các chương trình được viết để đọc html (trình duyệt, bot) không thể đổ lỗi cho BẠN vì đã không đáp ứng thông số kỹ thuật nếu có sự cố. và một số chương trình này cung cấp cho bạn ngoại suy (thứ hạng cao hơn trong công cụ tìm kiếm nếu bot báo cáo "đáp ứng thông số kỹ thuật"). nếu bạn gặp thông số kỹ thuật, bạn sẽ bị bất ngờ ít hơn nhiều nếu một số trình duyệt không hiển thị html bị hỏng theo cách bạn nghĩ.

vì vậy, để đáp ứng các thông số kỹ thuật và viết html hợp lệ là tốt cho bạn, không có nhược điểm nào cả.

1
akira

Google và Bing không, không và sẽ không bao giờ sử dụng xác thực CSS hoặc HTML làm yếu tố xếp hạng.

Phần lớn các trang web có hàng chục đến hàng trăm lỗi và bạn không cần phải lo lắng về chúng bởi vì tất cả các công cụ tìm kiếm quan tâm là cách trang hiển thị. Chỉ cần đảm bảo trang web của bạn hiển thị chính xác trong tất cả các trình duyệt chính và Fetch của Google .

0
Simon Hayter