E2.21.1read-only still selectable设计研究
只读表示当前不可改但内容仍可选中复制
别名: 只读可复制 · readonly vs disabled · 只读输入框
概念解释
只读(read-only)说的是「这份值现在不能改」,不是「这份值不存在于交互里」。槽仍在焦点序列中,文字仍能被选中、复制、由读屏器读出。把它做成看起来像输入框却选不中,或直接换成不能聚焦的纯文本,只读的「仍是内容」这一半就丢了。它管的是不可改但仍可取用,不是禁用那种「功能关掉」,也不是两者长得像不像。
机制
只读出现在值已经定稿、但仍要被带走的场合:订单号、系统生成的回调地址、他人填写后你只能看的字段。人的下一步经常是复制到别处。readonly 保持可聚焦和可选中;disabled 通常把控件从交互里摘走,复制要靠别的入口。若只读被实现成禁用,键盘用户 Tab 会跳过,读屏器可能不报这份值,复制只能靠鼠标拖一段静态字——触屏上几乎做不到。只读的视觉可以收敛,但命中测试必须仍把文字交给选择,而不是交给「什么都不发生」。
怎么研究
比较只读、禁用、静态文本三种实现,任务是「把这个值粘到下一格」。记录能否选中、键盘能否到达、读屏器是否朗读。自变量:平台(桌面对触屏)、值的长度。因变量:复制成功率、到达时间。辅助技术用户应单独走查:只读字段是否仍在焦点顺序里。不要用「看起来不能改」代替「能不能把值带走」。
边界
机密只读值(已显示的密钥)可能禁止复制,那要另做「复制」并审计,而不是靠禁用混过去。只读的长文在触屏上选中仍困难,需要一颗显式复制。值会定期变(实时汇率)时,只读槽里选中的可能是过期快照,复制要标明时间。完全展示性的标题不是只读输入,不必做成 input。
怎么落地
- 用只读而不是禁用去呈现「不能改但要被复制」的值,保持可聚焦、可选中。
- 触屏上为这类值提供复制按钮,不要只靠长按选字。
- 让读屏器读出值和「只读」,焦点不要跳过。
- 验证:只用键盘选中并复制只读槽里的值;关掉指针在手机上再复制一次。失败或焦点跳过,只读就被做成了禁用或死文本。