【輸入法探究part1】—— 你用對系統(tǒng)鍵盤了嗎?

因最近在做輸入法的重設(shè),所以對輸入法(鍵盤)進行了一些探究。

輸入法作為鍵盤的類型子集,不同的廠牌會有不同的功能特性,但不論是何種輸入法,都會有一些基本的屬于鍵盤控件的設(shè)計準(zhǔn)則。

從控件的角度來看,鍵盤作為主要的輸入方式,很大程度的影響著用戶的寫作體驗。若是鍵盤使用不當(dāng),則很有可能增加失誤率,進而打擊用戶的積極性。輕則喪失寫作欲望,重則放棄對某個應(yīng)用的注冊(不過注冊的步驟,往往是決定注冊流程體驗的第一因素)。

從視覺到交互,從功能實現(xiàn)到類型應(yīng)用都會影響輸入法(鍵盤)的體驗。這一節(jié),從原始的控件角度,分析鍵盤類型的選擇對體驗的影響。

之前的一些前輩也分享對類似的經(jīng)驗總結(jié):

崇書慶【交互稿中[鍵盤類型]的標(biāo)注】——

http://mp.weixin.qq.com/s/ii7iTwT7B-SmHkC_7bcUbQ

崇書慶【深度基礎(chǔ) | 交互中的Android鍵盤詳解】

https://mp.weixin.qq.com/s?__biz=MzAwODgyODg5OQ==&mid=2652156877&idx=1&sn=4eb1bcd94632e11b9e194665a80c1b51&mpshare=1&scene=1&srcid=0422kT5aw6oW7aw0QTbDM7ZH#rd

【Android有幾種不同的鍵盤布局?】

https://www.zhihu.com/question/39242957

筆者會結(jié)合前者的總結(jié)來寫。大家可以結(jié)合來看。




iOS10中有13種鍵盤



1.UIKeyboardTypeDefault

Specifies the default keyboard

for the current input method.

(默認(rèn)鍵盤)



2. UIKeyboardTypeASCIICapable

Specifies a keyboard

that displays standard ASCII characters.

(ASCII鍵盤)



3.UIKeyboardTypeNumbersAndPunctuation

Specifies the numbers

and punctuation keyboard.

(數(shù)字、標(biāo)點鍵盤)



4.? UIKeyboardTypeURL

Specifies a keyboard optimized for URL entry.

This keyboard type prominently features

the period (“.”) and slash (“/”) characters

and the “.com” string.

(URL鍵盤)

(特設(shè)“.”、“/”、“.com”)



5.? UIKeyboardTypeNumberPad

Specifies a numeric keypad designed for PIN entry.

This keyboard type prominently features

the numbers 0 through 9.

This keyboard type does not support auto-capitalization.

(PIN鍵盤)

(包含0-9數(shù)字,不支持自動大寫)



6.? UIKeyboardTypePhonePad

Specifies a keypad designed for entering telephone numbers.

This keyboard type prominently features the numbers 0 through 9

and the “*” and “#” characters.

This keyboard type does not support auto-capitalization.

(電話數(shù)字鍵盤)

(包含0-9數(shù)字及 *、# 鍵,不支持自動大寫)



7.? UIKeyboardTypeNamePhonePad

Specifies a keypad designed for

entering a person’s nameor phone number.

This keyboard type does not support auto-capitalization.

(聯(lián)系人鍵盤:用于輸入人名和電話)

(包含0-9數(shù)字及 *、# 鍵,不支持自動大寫)

(與默認(rèn)鍵盤樣式一樣)



8.? UIKeyboardTypeEmailAddress

Specifies a keyboard optimized for

entering email addresses.

This keyboard type prominently features

the at (“@”), period (“.”) and space characters.

(郵件鍵盤)

(包含"@"、“.”、空格鍵)



9.? UIKeyboardTypeDecimalPad

Specifies a keyboard with numbers

and a decimal point.

(小數(shù)鍵盤)

(包含小數(shù)點)



10.UIKeyboardTypeTwitter

Specifies a keyboard optimized for

Twitter text entry,

with easy access to the at (“@”)

and hash (“#”) characters.

(Twitter鍵盤)

(包含@、#鍵)



11.UIKeyboardTypeWebSearch

Specifies a keyboard optimized for

web search terms and URL entry.

This keyboard type prominently features

the space and period (“.”) characters.

(網(wǎng)頁搜索鍵盤)

(包含空格鍵、“.”鍵)



12.UIKeyboardTypeASCIICapableNumberPad

Specifies a number pad that outputs

only ASCII digits.

(ASCII數(shù)字鍵盤)


13.UIKeyboardTypeAlphabet

UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,

// Deprecated 已廢棄


除了有不同的類型,部分鍵盤還可以定制不同的“按鍵命令”

按鍵命令




Android中的文本框有32種輸入類型(input type),系統(tǒng)會根據(jù)這個輸入類型調(diào)取不同的鍵盤。


input type

有人認(rèn)為,雖然輸入類型有32種,但keyboard type卻遠(yuǎn)大于32種,因為——

input type還可以互相搭配使用,比如 textEmailAddress 可以和 textNoSuggestions 搭配使用,最終調(diào)出的鍵盤是“郵箱鍵盤”且“不進行詞典聯(lián)想”。如果我們在設(shè)計過程中遇到一些比較復(fù)雜的鍵盤交互,則最好根據(jù)input type來標(biāo)注所需要的鍵盤效果,僅僅使用鍵盤截圖是不夠的。

——崇書慶《深度基礎(chǔ) | 交互中的Android鍵盤詳解》

也有人提出,keyboard type并沒有32種

比如datetime、date、time可以用專門picker(選擇器)去做。textCapWords、textCapWords、textCapSentences大寫之類的對鍵盤布局沒有影響,只是鍵盤的狀態(tài)而已。

——龍爪槐守望者 @知乎《Android有幾種不同的鍵盤布局?》

綜合兩者觀點,筆者認(rèn)為Android的鍵盤可控性較大,明確所有input type屬性比數(shù)清鍵盤類型更有實際效益,在此前提下,設(shè)計人員可以根據(jù)需求自行組合選擇鍵盤特性。


none

(默認(rèn)鍵盤)



text

(文本)



textEmailAddress

(電子郵箱)



textUri

(URI)



textPassword

(密碼)



numberSigned

(數(shù)字符號)




number

(數(shù)字)



numberDecimal

(小數(shù)點數(shù)字)



phone

(電話號碼)


與IOS一樣,Android的鍵盤也可以定制不同的“keyboard actions”

keyboard actions

如果我們需要指定keyboard action為其中某一種,可以通過imeOptions語句指定,在交互稿上則使用文字標(biāo)注即可。如果不指定類型,程序會判斷當(dāng)前文本框是否為頁面中的最后一項,如果是,則顯示“完成(done)”,如果不是,則顯示“下一項(next)”。

關(guān)于“前往”和“完成”的區(qū)別,筆者比較傾向于@江凌的觀點:

用“完成”還是“前往”取決于當(dāng)前文本框的任務(wù)時中介點還是終結(jié)點。譬如輸入網(wǎng)址,用戶的任務(wù)是訪問網(wǎng)站,輸入網(wǎng)址是任務(wù)的中介而非終結(jié),所以用前往;對于個人信息修改,任務(wù)和操作文本框是一致的,完成文本框也是完成了任務(wù)本身,是任務(wù)的終結(jié)點,所以用完成。

但是在H5環(huán)境中,“按鍵命令”的類型大部分可以選擇,但“完成”和“下一項”不可以選擇。這意味著,當(dāng)用戶填寫完一個輸入框想要跳轉(zhuǎn)下一個輸入框時,只能手動點擊。如果用戶下意識地點擊“前往”按鈕,則可能會出現(xiàn)表單警報。

文中若有紕漏,歡迎指正交流

wx:15652131424

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容