- From: Kang-Hao (Kenny) Lu <kennyluck@w3.org>
- Date: Tue, 08 Nov 2011 10:48:08 +0800
- To: 中文HTML5同樂會ML <public-html-ig-zh@w3.org>, 火狐俱樂部 <moztw-general@googlegroups.com>
根據 HTML 規範有關 Tokenization 的部份[1],命名型字符引用(暫譯,named character reference)會出現解析錯誤的情型只有兩種: 1)「&」和「;」的中間是英文或數字,且引用的英文詞不存在。例如:「&anp;」 2) 沒有「;」的字符引用。例如:「<」 對於第一種,規範是說只要「&」和「;」中間有不是英文或數字的字符(或沒有 「;」),就不算解析錯誤。例如: 3)「a & b」→ validator.nu 結果[2] 4)「& lt;」→ validator.nu 結果[3] 5)「<a href="query?a=1&b=2"></a>」→ validator.nu 結果[4] 6)「&rarr」(「→」不能省「;」)→ validator.nu 結果[5] 7)「小明&小華」→ validator.nu 結果[6] 注意到 validator.nu 把 5)、6)、7) 當作解析錯誤了,不合規範。大家覺得規範 規定的行為跟 validator.nu 的行為哪個比較好呢? 由於 HTML 現在定義了完整的解析過程,符合規範定義的 HTML 解析器(瀏覽 器),最後不管給它什麼都會得到一樣的結果,解析錯誤的定義/驗證器 的目的變 成比較不是為了兼容,而是變成相對比較功能導向一點 — 防止網頁作者出錯。比 如說: 1)「&anp;」之所以會有解析錯誤,是因為作者可能打錯了。 2)「<」之所以會有解析錯誤,是因為作者可能少打了分號,另外這個行為據 Peter 說跟舊版 Nescape 不兼容。(如果知道這個行為還刻意用它的我只能說這 個人是個瘋子) 3)「a & b」之所以沒有解析錯誤是因為,這個地方作者弄錯的可能性不太大,加 上這種情況在英文蠻常出現的,沒多少人會特別想用「a & b」。 4)「& lt;」之所以沒有解析錯誤,我想是因為會多打空白的人很少,但是這個地 方值得懷疑。 5)「<a href="query?a=1&b=2"></a>」之所以沒有解析錯誤,是因為這邊事實上作 者根本沒有弄錯,只是不想要用 「&」而已,而且這個解析應該兼容超過十年 了,驗證器*不該*報這個錯誤。 6)「&rarr」我覺得就很難說了,規範是說沒錯,但是我感覺在這種情況漏打「;」 的機率很高,應該報錯已幫助使用者。 7) 這種例子應該不常見,基本上我覺得規範說不要報錯也合理。總之驗證器跟這 個不符。 總之,在 5)、6)、7) 這三個例子裡,5) 非常常見這點應該沒什麼疑問,這裡不 應該報錯,這裡報錯只是讓大家更不想要使用驗證器而已(雖然大概本來就不是很 多人用...)。有誰有興趣的可以把這個 拿來當主例子去報一下錯,去 Mozilla 的 Bugzilla 就行了,因為這三個專案其實是用同一份程式碼。有興趣但是不知道 方法的可以私下聯絡我。 另外一個相關的問題,目前規範和驗證器碰到「a < b」都會報錯,但是假如要跟 4) 一致一點的話好像不應該報錯。大家覺得呢?有人手打 HTML 標籤的時候不小 心按到空白過嗎?(例:< b>Test</b>) [1] http://www.w3.org/html/ig/zh/wiki/HTML5/tokenization#.E5.AD.97.E7.AC.A6.E5.BC.95.E7.94.A8.E7.9A.84_Tokenization 下面 [2] http://validator.nu/?doc=data%3Atext%2Fhtml%3Bcharset%3Dutf-8%2C%3C%21DOCTYPE+html%3E%3Ctitle%3E%3C%2Ftitle%3Ea+%26+b&charset=&schema=&preset=&parser=&nsfilter= [3] http://validator.nu/?doc=data%3Atext%2Fhtml%3Bcharset%3Dutf-8%2C%3C%21DOCTYPE+html%3E%3Ctitle%3E%3C%2Ftitle%3E%26+lt%3B&charset=&schema=&preset=&parser=&nsfilter= [4] http://validator.nu/?doc=data%3Atext%2Fhtml%3Bcharset%3Dutf-8%2C%3C%21DOCTYPE+html%3E%3Ctitle%3E%3C%2Ftitle%3E%3Ca+href%3D%22query%253Fa%3D1%26b%3D2%22%3E%3C%2Fa%3E&charset=&schema=&preset=&parser=&nsfilter= [5] http://validator.nu/?doc=data%3Atext%2Fhtml%3Bcharset%3Dutf-8%2C%3C%21DOCTYPE+html%3E%3Ctitle%3E%3C%2Ftitle%3E%26rarr&charset=&schema=&preset=&parser=&nsfilter= [6] http://validator.nu/?doc=data%3Atext%2Fhtml%3Bcharset%3Dutf-8%2C%3C%21DOCTYPE+html%3E%3Ctitle%3E%3C%2Ftitle%3E%E5%B0%8F%E6%98%8E%26%E5%B0%8F%E8%8F%AF&charset=&schema=&preset=&parser=&nsfilter= 此致 Kenny
Received on Tuesday, 8 November 2011 02:48:36 UTC