因最近在做輸入法的重設(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種鍵盤
Specifies the default keyboard
for the current input method.
(默認(rèn)鍵盤)
Specifies a keyboard
that displays standard ASCII characters.
(ASCII鍵盤)
Specifies the numbers
and punctuation keyboard.
(數(shù)字、標(biāo)點鍵盤)
Specifies a keyboard optimized for URL entry.
This keyboard type prominently features
the period (“.”) and slash (“/”) characters
and the “.com” string.
(URL鍵盤)
(特設(shè)“.”、“/”、“.com”)
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ù)字,不支持自動大寫)
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ù)字及 *、# 鍵,不支持自動大寫)
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)鍵盤樣式一樣)
Specifies a keyboard optimized for
entering email addresses.
This keyboard type prominently features
the at (“@”), period (“.”) and space characters.
(郵件鍵盤)
(包含"@"、“.”、空格鍵)
Specifies a keyboard with numbers
and a decimal point.
(小數(shù)鍵盤)
(包含小數(shù)點)
Specifies a keyboard optimized for
Twitter text entry,
with easy access to the at (“@”)
and hash (“#”) characters.
(Twitter鍵盤)
(包含@、#鍵)
Specifies a keyboard optimized for
web search terms and URL entry.
This keyboard type prominently features
the space and period (“.”) characters.
(網(wǎng)頁搜索鍵盤)
(包含空格鍵、“.”鍵)
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)取不同的鍵盤。
有人認(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ù)需求自行組合選擇鍵盤特性。
(默認(rèn)鍵盤)
(文本)
(電子郵箱)
(URI)
(密碼)
(數(shù)字符號)
(數(shù)字)
(小數(shù)點數(shù)字)
(電話號碼)
與IOS一樣,Android的鍵盤也可以定制不同的“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