2012-09-27 65 views
6

(我感興趣的是HTML 4.01 HTML5,如果應該有差異)帶`lang`屬性的img`元素:圖像本身的語言?

是否一個img元素的lang屬性適用於src屬性嗎?還是僅僅爲alttitle屬性?

例子:

<img src="example.png" alt="a red foobar" lang="en" /> 

被認爲是英語中的形象 「example.png」? (想想論壇主題的屏幕截圖,或者單詞的圖形表示,或文檔的掃描)

如果這是真的,則帶有非語言內容的圖像需要獲得lang="zxx"。但是,這也適用於alt/title屬性,這將是不正確的。

回答

5

HTML 4.01 defineslang屬性作爲指定「元素的屬性值和文本內容的基本語言」,而HTML5 defines它爲「主要語言的元素的內容和任何包含文本元素的屬性的」。這種差異顯然只在配方中。 lang屬性指定alttitle屬性的語言以及可能包含散文文本的其他屬性,與類似代碼的值(如URL或style屬性)相反,其中(人)語言不適用。

src屬性本身不是任何(人類)語言,邏輯上。所以問題是lang屬性是否擴展到由src屬性表示的圖像。這是一個相當理論化的問題 - 答案可能會對軟件行爲有什麼影響?無論如何,答案取決於我們所理解的「文本內容」(圖像是某種意義上的文本,格式化,但可能是HTML 4.01意味着僅指實際的字符數據)和「元素的內容」(是圖像的一部分)元素的內容?)。總的來說,圖像的語言(儘管是一個可行的概念)似乎不能用HTML來指定。

因此,不需要擔心非語言內容的圖像。對於「非語言性」的文本內容(即不是任何人類語言的文本,例如某些代碼符號或隨機字符序列),使用lang=""是HTML5推薦的內容。這也是實用的方法。在少數情況下,lang屬性具有任何影響,如在自動連字中,lang=""實際上意味着不應用任何語言規則(例如,沒有連字符)。這與省略屬性不同,這意味着該元素從父級繼承語言信息。

+0

不知道'lang'接受了一個空字符串,但這樣做是有道理的。在HTML5之前,「lang =」「'永遠有效嗎? – BoltClock

+0

@BoltClock,'lang =「」'在HTML 4.01中無效(即使在形式上),因爲它用'NAME'值聲明屬性。但HTML 4.01在這方面已經過時了。 XHTML5引用了BCP 47,它明確地將空字符串定義爲可能的語言代碼。 –

+0

關於lang值:zxx值的意思是「沒有語言的內容」,而空值也可能意味着「未知」(類似於未確定的「und」),或者我錯了嗎? – unor

2

在HTML 4.01,section 13.8表示:

替代文本的語言由lang屬性指定。

在HTML5中,it says

指定元素的內容和任何包含文字元素的屬性的主要語言。

我找不到在當前HTML5草案中明確定義了altlang屬性之間的關係爲HTML 4.01規範做任何事情。希望稍後會澄清,但我現在會假設沒有任何變化,並且它確實是狀態也是適用的。

既不規範規定的srclang屬性之間的明確的關係,但我不會假設源圖像本身的語言對應lang屬性,因爲不是所有的圖像將有語言內容(如你提到)。

titlelang也是如此,但這可能取決於元素類型,我不完全確定。再次,它確實狀態一般以上應適用於title