【输入法探究part1】—— 你用对系统键盘了吗?

因最近在做输入法的重设,所以对输入法(键盘)进行了一些探究。

输入法作为键盘的类型子集,不同的厂牌会有不同的功能特性,但不论是何种输入法,都会有一些基本的属于键盘控件的设计准则。

从控件的角度来看,键盘作为主要的输入方式,很大程度的影响着用户的写作体验。若是键盘使用不当,则很有可能增加失误率,进而打击用户的积极性。轻则丧失写作欲望,重则放弃对某个应用的注册(不过注册的步骤,往往是决定注册流程体验的第一因素)。

从视觉到交互,从功能实现到类型应用都会影响输入法(键盘)的体验。这一节,从原始的控件角度,分析键盘类型的选择对体验的影响。

之前的一些前辈也分享对类似的经验总结:

崇书庆【交互稿中[键盘类型]的标注】——

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

崇书庆【深度基础 | 交互中的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

笔者会结合前者的总结来写。大家可以结合来看。




iOS10中有13种键盘



【输入法探究part1】—— 你用对系统键盘了吗?_第1张图片
1.UIKeyboardTypeDefault

Specifies the default keyboard

for the current input method.

(默认键盘)



【输入法探究part1】—— 你用对系统键盘了吗?_第2张图片
2. UIKeyboardTypeASCIICapable

Specifies a keyboard

that displays standard ASCII characters.

(ASCII键盘)



【输入法探究part1】—— 你用对系统键盘了吗?_第3张图片
3.UIKeyboardTypeNumbersAndPunctuation

Specifies the numbers

and punctuation keyboard.

(数字、标点键盘)



【输入法探究part1】—— 你用对系统键盘了吗?_第4张图片
4.  UIKeyboardTypeURL

Specifies a keyboard optimized for URL entry.

This keyboard type prominently features

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

and the “.com” string.

(URL键盘)

(特设“.”、“/”、“.com”)



【输入法探究part1】—— 你用对系统键盘了吗?_第5张图片
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数字,不支持自动大写)



【输入法探究part1】—— 你用对系统键盘了吗?_第6张图片
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.

(电话数字键盘)

(包含0-9数字及 *、# 键,不支持自动大写)



【输入法探究part1】—— 你用对系统键盘了吗?_第7张图片
7.  UIKeyboardTypeNamePhonePad

Specifies a keypad designed for

entering a person’s nameor phone number.

This keyboard type does not support auto-capitalization.

(联系人键盘:用于输入人名和电话)

(包含0-9数字及 *、# 键,不支持自动大写)

(与默认键盘样式一样)



【输入法探究part1】—— 你用对系统键盘了吗?_第8张图片
8.  UIKeyboardTypeEmailAddress

Specifies a keyboard optimized for

entering email addresses.

This keyboard type prominently features

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

(邮件键盘)

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



【输入法探究part1】—— 你用对系统键盘了吗?_第9张图片
9.  UIKeyboardTypeDecimalPad

Specifies a keyboard with numbers

and a decimal point.

(小数键盘)

(包含小数点)



【输入法探究part1】—— 你用对系统键盘了吗?_第10张图片
10.UIKeyboardTypeTwitter

Specifies a keyboard optimized for

Twitter text entry,

with easy access to the at (“@”)

and hash (“#”) characters.

(Twitter键盘)

(包含@、#键)



【输入法探究part1】—— 你用对系统键盘了吗?_第11张图片
11.UIKeyboardTypeWebSearch

Specifies a keyboard optimized for

web search terms and URL entry.

This keyboard type prominently features

the space and period (“.”) characters.

(网页搜索键盘)

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



【输入法探究part1】—— 你用对系统键盘了吗?_第12张图片
12.UIKeyboardTypeASCIICapableNumberPad

Specifies a number pad that outputs

only ASCII digits.

(ASCII数字键盘)


13.UIKeyboardTypeAlphabet

UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,

// Deprecated 已废弃


除了有不同的类型,部分键盘还可以定制不同的“按键命令”

【输入法探究part1】—— 你用对系统键盘了吗?_第13张图片
按键命令




Android中的文本框有32种输入类型(input type),系统会根据这个输入类型调取不同的键盘。


【输入法探究part1】—— 你用对系统键盘了吗?_第14张图片
input type

有人认为,虽然输入类型有32种,但keyboard type却远大于32种,因为——

input type还可以互相搭配使用,比如 textEmailAddress 可以和 textNoSuggestions 搭配使用,最终调出的键盘是“邮箱键盘”且“不进行词典联想”。如果我们在设计过程中遇到一些比较复杂的键盘交互,则最好根据input type来标注所需要的键盘效果,仅仅使用键盘截图是不够的。

——崇书庆《深度基础 | 交互中的Android键盘详解》

也有人提出,keyboard type并没有32种

比如datetime、date、time可以用专门picker(选择器)去做。textCapWords、textCapWords、textCapSentences大写之类的对键盘布局没有影响,只是键盘的状态而已。

——龙爪槐守望者 @知乎《Android有几种不同的键盘布局?》

综合两者观点,笔者认为Android的键盘可控性较大,明确所有input type属性比数清键盘类型更有实际效益,在此前提下,设计人员可以根据需求自行组合选择键盘特性。


【输入法探究part1】—— 你用对系统键盘了吗?_第15张图片
none

(默认键盘)



【输入法探究part1】—— 你用对系统键盘了吗?_第16张图片
text

(文本)



【输入法探究part1】—— 你用对系统键盘了吗?_第17张图片
textEmailAddress

(电子邮箱)



【输入法探究part1】—— 你用对系统键盘了吗?_第18张图片
textUri

(URI)



【输入法探究part1】—— 你用对系统键盘了吗?_第19张图片
textPassword

(密码)



numberSigned

(数字符号)




【输入法探究part1】—— 你用对系统键盘了吗?_第20张图片
number

(数字)



【输入法探究part1】—— 你用对系统键盘了吗?_第21张图片
numberDecimal

(小数点数字)



【输入法探究part1】—— 你用对系统键盘了吗?_第22张图片
phone

(电话号码)


与IOS一样,Android的键盘也可以定制不同的“keyboard actions”

【输入法探究part1】—— 你用对系统键盘了吗?_第23张图片
keyboard actions

如果我们需要指定keyboard action为其中某一种,可以通过imeOptions语句指定,在交互稿上则使用文字标注即可。如果不指定类型,程序会判断当前文本框是否为页面中的最后一项,如果是,则显示“完成(done)”,如果不是,则显示“下一项(next)”。

关于“前往”和“完成”的区别,笔者比较倾向于@江凌的观点:

用“完成”还是“前往”取决于当前文本框的任务时中介点还是终结点。譬如输入网址,用户的任务是访问网站,输入网址是任务的中介而非终结,所以用前往;对于个人信息修改,任务和操作文本框是一致的,完成文本框也是完成了任务本身,是任务的终结点,所以用完成。

但是在H5环境中,“按键命令”的类型大部分可以选择,但“完成”和“下一项”不可以选择。这意味着,当用户填写完一个输入框想要跳转下一个输入框时,只能手动点击。如果用户下意识地点击“前往”按钮,则可能会出现表单警报。

文中若有纰漏,欢迎指正交流

wx:15652131424

你可能感兴趣的:(【输入法探究part1】—— 你用对系统键盘了吗?)