Thông số kỹ thuật nói gì
Vâng, hành vi đó là chính xác. Mục 5.4 của thông số kỹ thuật Microdata W3C mô tả giá trị nào sẽ được sử dụng.
Trong hầu hết các trường hợp, nội dung của phần tử được sử dụng làm itemprop
giá trị, nhưng trong một số trường hợp, giá trị của thuộc tính được sử dụng làm itemprop
giá trị.
Đây là trường hợp cho sáu attributes¹: content
², src
, href
, data
, value
, datetime
.
Điều này có ý nghĩa gì trong thực tế
Nếu bạn muốn sử dụng nội dung của một a
phần tử (thay vì URL trong href
thuộc tính của nó ) làm giá trị thuộc tính, bạn phải sử dụng / thêm phần tử cha hoặc phần tử con phù hợp:
<a href="ignored-url"><span itemprop="property">property value</span></a>
<span itemprop="property"><a href="ignored-url">property value</a></span>
Nếu bạn muốn cung cấp một URL như giá trị tài sản, bạn phải sử dụng itemprop
trên một trong những yếu tố sở hữu URL (ví dụ, các yếu tố mà can³ có một href
, src
hoặc data
thuộc tính). Vì vậy, điều này sẽ không hợp lệ (trừ khi bạn muốn cung cấp một chuỗi dưới dạng giá trị trông giống như một URL):
<!-- INVALID --> <span itemprop="property">http://example.com/foo</span>
Must Nó phải hợp lệ cho phần tử có thuộc tính này. Vì vậy, đối với một (không hợp lệ!) <div href="" itemprop=""></div>
, Nội dung phần tử được sử dụng, không phải href
giá trị.
² Trong thông số kỹ thuật cũ của Microdata của WHATWG và W3C, chỉ meta
phần tử mới có thể có content
thuộc tính , nhưng thông số kỹ thuật Microdata W3C mới (hiện là Bản nháp làm việc) cho phép content
trên bất kỳ phần tử nào. Nếu một phần tử có content
thuộc tính và cũng là một trong những thuộc tính được liệt kê khác, content
sẽ được sử dụng.
³ Microdata làm cho nó không hợp lệ để có một trong các yếu tố sở hữu URL mà không thuộc tính URL tương ứng của họ (ví dụ href
, src
, data
), trừ các link
phần tử (nhưng nó đã được yêu cầu của HTML để có href
thuộc tính).