2011-09-28 27 views
8

Sau khi thêm Microdata vào các trang web của tôi, tôi có nhiều lỗi từ W3C validator phàn nàn các itemprop:Microdata itemprop gây W3C lỗi validator

không có thuộc tính "itemprop"

Từ mã như thế này :

<p itemprop="description">...</p> 

Đây là DOCTYPE của tôi và html thẻ

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:fb="http://www.facebook.com/2008/fbml"> 

Làm cách nào để sửa lỗi xác thực?

p.s. Trước đây tôi cũng có lỗi xác thực cho itemscope. Nhưng sau khi tôi đổi nó thành itemscope="itemscope" thì lỗi đã được sửa.

Trả lời

15

Documents với HTML 5 cộng Microdata sử dụng để xác nhận thành công nhưng vì Bug #14020 validator đã trở thành nghiêm ngặt hơn về tuyên bố văn bản là "hợp lệ". Tài liệu của bạn là HTML 5 + Microdata hợp lệ nhưng không hoàn toàn là tài liệu HTML 5.

Bạn có thể sử dụng http://Validator.nu/ để xác thực HTML 5 + Microdata.

Các trang web liên quan đến trong câu trả lời Fabian là không các W3C chỗ ông đề cập, vì vậy tôi sẽ không tin tưởng rằng càng nhiều cho HTML 5 như tôi có thể có cho trước (pre-2000) versions of HTML.

Lý do bạn phải thay đổi itemscope thành itemscope = "itemscope" là các trình duyệt và thông số kỹ thuật trước đã xác định các cách diễn giải không tương thích (đôi khi đúng, đôi khi sai) của mã như itemscope (no value), itemscope = "" (chuỗi rỗng được XPath hiểu là sai) và itemscope = "false" (bất kỳ chuỗi không trống nào đôi khi được hiểu là đúng). Vì vậy, tuyên bố trong spec rằng "Các giá trị" true "và" false "không được cho phép trên các thuộc tính boolean." Tuy nhiên, "true" và "false" có thể xuất hiện trong các giá trị thuộc tính nhất định bởi vì chúng được phép trên các thuộc tính được liệt kê như draggable. Xem bullet # 4 về coding boolean values.

Cách khắc phục (ở nơi khác) để chèn mã không hợp lệ bằng tập lệnh có thể ẩn mã đó khỏi trình xác thực, nhưng nó sẽ không tạo tài liệu hợp lệ hơn sử dụng mã HTML tĩnh vì đặc tả HTML 5 được xác định theo thuật ngữ của mô hình tài liệu nội bộ, không phải là biểu diễn bên ngoài. Xem HTML 5 Specifications focus on the DOM.

4

OK, đây là những gì tôi đã làm để làm cho công việc này với Validator:

Đề cập vào trang này: http://www.w3.org/TR/2011/WD-microdata-20110525/

tôi kèm theo những chính trong trang của tôi (các "wrapper" nếu bạn sẽ) với như sau:

<div id="layout" itemscope> 

Nếu bạn có itemscope trong thẻ div cho trang của bạn hoặc cho div chứa microdata thì Trình xác thực W3C sẽ thích nó.

0

nếu bạn chỉ muốn xóa thẻ này bạn có thể làm như vậy bằng cách loại bỏ tag từ tập tin nằm trong thư mục gốc chính

"wp-includes/chung-template.php" tại 891 dòng

bạn chỉ có thể xóa thẻ phụ.

Các vấn đề liên quan