- From: Kang-Hao (Kenny) Lu <kennyluck@w3.org>
- Date: Fri, 17 Feb 2012 00:46:47 +0800
- To: W3C HTML5 中文興趣小組 <public-html-ig-zh@w3.org>
- CC: Timothy Chien <timdream@gmail.com>, 杜欢 <dh20156@gmail.com>
我用風之石的 jslab 做了關於 ime-mode 一系列的實驗[1]。 [1] http://www.jslab.org.cn/?tag=imeMode&page=9 (12/02/15 12:26), Kang-Hao (Kenny) Lu wrote: > 1. 適用範圍 > > 規範裡的表格中,提到: > > # 適用於: 文字欄位 > > 這是真的嗎?在一般元素在有 @contenteditable 的情況下這個屬性難道不能用 > 嗎?另外,文字欄位包不包括密碼欄位? 結果是 IE 對於有 @contenteditable 的元素有用,FF 沒有。就一致性而言,我 想規範應該照 IE 的處理方式進行。另外,在 IE/Windows 下 <button> <span tabindex="1"> <input type="checkbox"> 等等種種特殊情形下,ime-mode 沒有 效果,而是怎麼樣都不能打開 IME,在 FF/MacOSX 的情形下,ime-mode 沒有效 果,而是怎麼樣 IME 可以打開。 我會建議規範改成 | 適用於: 文字欄位及有 @contenteditable 的元素,不包括密碼欄位。 另外,規範還應該寫清楚 | 對於不適用的元素,使用者代理應該根據系統常規決定輸入法的狀態。 (不過這裡比較奇怪的是,在 Windows 下,在 IE 以外的應用程式裡,就算焦距 不在文字欄位輸入法還是可以變更。有沒有人知道為什麼會有這種 IE 跟其他應用 程式不一致的情形?MacOSX 則是包括瀏覽器的所有應用程式都是預設可以切換輸 入法。) > 2. auto 跟 normal 的差異 > > 現在的描述是 > > # auto > # 不更改現在輸入法的狀態。預設值。 > # normal > # 輸入法狀態應該為正常 ― 此值可以在使用者樣式表裡面使用,以覆蓋頁面設定。 > > 到底什麼是「正常」?我看了 MDN 裡的解釋(竟然還會發生 MDN 裡的資訊比規範 > 還多的情形,真可悲)後面那個 input[type=password] { ime-mode: auto > !important; } 的例子,好像是說 auto 的話就是在密碼欄位不能用輸入法,在其 > 他地方可以?所以 normal 指的是在哪裡都可以正常的用輸入法的意思嗎?有沒有 > 人可以證實一下? 測試結果:果然如此。 > 在看 MDN 這個解釋之前,我一直以為 auto 才是在哪裡都可以正常的用輸入法。 > MDN 說 IE 不支援 normal 而且不支援在密碼欄設置這個屬性,所以我猜它是用這 > 個解釋,再配上 UA 樣式 input[type=password] { ime-mode: disabled > !important; } (類似 FF 的 noscript: display:none; !important),這樣應 > 該就不需要 normal 這個值。我個人覺得少一個沒用的屬性質也是少一個好... > > 總之我不知道 normal 這個值到底跟 auto 有什麼不同.... 所以 'normal' 這個值看起來唯一的用處就是用 input[type=password] { ime-mode: normal; } 來讓密碼欄可以打中文,而這個功能本身也沒有用處,也就 是,個人感覺 'normal' 真沒什麼用處。如果「適用於」真的不含密法欄了,那我 建議拿掉這個值(或是 'auto' 二選一)。剩下的那個是真正的「不更改現在輸入 法的狀態。」 還是有人知道 normal 到底還有哪裡有用的? > 3. 動態調整 > > 假如說我現在的焦距在一個文字欄未上,輸入法未開。這時候假如有一個腳本設置 > 了 ime-mode: active,這時候輸入法會打開嗎?隨便打點東西之後(但是不把焦 > 距移到別的地方),輸入法會打開嗎?(這可以用 setTimeout 測) 結論是不會。另外假如輸入法為啟動的狀況下,腳本把 'ime-mode' 設置成 'dissabled',輸入法還是還是可以啟動、關閉。只有在元素重新得到焦距的時 候,才會變成不能打開輸入法的狀態。所以這裡 # CSS 屬性 ‘ime-mode’ 可以控制文字欄位輸入法的狀態。 要寫清楚 | CSS 屬性 ‘ime-mode’ 可以控制元素得到焦距的時候輸入法狀態是否改變。 | 在有焦距的元素沒改變的情況下,使用者代理必不可改變輸入法的狀態。 此致 Kenny
Received on Thursday, 16 February 2012 16:47:18 UTC