(我对HTML 4.01 和 HTML5感兴趣,如果存在差异的话)
lang
元素的img
属性是否也适用于src
属性?或者仅适用于alt
和title
属性?
示例:
<img src="example.png" alt="a red foobar" lang="en" />
图片“example.png”是否被认为是英文? (想想论坛帖子的截图,或者单词的图形表示,或者文档的扫描)
如果确实如此,包含非语言内容的图片需要获得lang="zxx"
。但这也适用于alt
/ title
属性,这也是不正确的。
答案 0 :(得分:6)
HTML 4.01 defines lang
属性指定“元素的属性值和文本内容的基本语言”,而HTML5 defines将其作为元素内容和任何内容的主要语言包含文本的元素属性“。差异显然仅在配方中。 lang
属性指定alt
和title
属性的语言以及可能包含散文文本的其他属性,与URL或style
属性等类似代码的值相反,(人类)语言不适用。
src
属性本身不是任何(人类)语言,逻辑上。所以问题是lang
属性是否扩展到src
属性表示的图像。这是一个相当理论上的问题 - 答案可能对软件行为产生什么影响?无论如何,答案取决于我们理解为“文本内容”(图像是某种意义上的文本,格式化,但可能HTML 4.01仅指实际字符数据)和“元素内容”(是图像的一部分) img
元素的内容?)。总的来说,似乎无法在HTML中指定图像的语言(虽然这是一个可行的概念)。
因此无需担心具有非语言内容的图像。对于“非语言”的文本内容(即,不是任何人类语言的文本,例如某些代码符号或随机字符序列),使用lang=""
是HTML5推荐的内容。这也是实用的方法。在少数情况下,lang
属性有任何影响,如自动连字,lang=""
实际上意味着不应用任何语言规则(例如,没有连字符)。这与省略属性不同,这意味着该元素从其父级继承语言信息。
答案 1 :(得分:2)
在HTML 4.01中,section 13.8说:
备用文本的语言由
lang
属性指定。
在HTML5中,it says:
指定元素内容的主要语言以及包含文本的任何元素属性的主要语言。
我在当前的HTML5草案中找不到任何定义alt
和lang
属性之间关系的内容,就像HTML 4.01规范那样明确。希望以后能够澄清,但我现在假设没有任何变化,而所做的状态同样适用。
两个规范都没有说明src
和lang
属性之间的明确关系,但我不认为源图像本身的语言对应于lang
属性,因为不是所有图像都将具有语言内容(如您所述)。
同样适用于title
和lang
,但这可能取决于元素类型,我不完全确定。同样,上面做状态的内容应适用于title
。