在 OpenHarmony(鸿蒙原子化/ArkUI 应用)里做验证码的无障碍(Accessibility),核心目标是:
让视障用户(屏幕朗读/TalkBack、OpenHarmony 的“无障碍语音”)能知道验证码是什么、在哪里、是否需要输入、是否错误。
下面按场景说明做法(以 ArkTS + ArkUI 为主)。
Text(this.code)
.fontSize(24)
.accessibilityText('验证码:' + this.code)
.accessibilityDescription('当前显示的验证码内容')
✅ 效果:
视障用户聚焦时,会朗读:“验证码:8 3 2 9”
Row() {
ForEach(this.code.split(''), (ch: string) => {
Text(ch)
.fontSize(28)
.accessibilityText(ch)
})
}
这样比整体读更清晰,尤其字母+数字混合时。
TextInput({ placeholder: '请输入验证码' })
.maxLength(6)
.inputType(InputType.Number)
.accessibilityText('验证码输入框')
.accessibilityDescription('请输入收到的6位验证码')
OpenHarmony 支持 短信验证码自动填充(系统能力):
TextInput + inputType(NumberPassword | Number)✅ 对无障碍用户极友好
只放一张图,不提供文字说明。
Image($r('app.media.captcha'))
.accessibilityText('图形验证码,内容为:AB12')
或:
Button('听验证码')
.onClick(() => {
// 调用 TTS 朗读验证码
})
Button(this.count > 0 ? `${this.count}s后重发` : '获取验证码')
.accessibilityText(this.count > 0 ? `请在${this.count}秒后重新获取验证码` : '获取验证码')
if (this.error) {
Text('验证码错误')
.fontColor(Color.Red)
.accessibilityText('验证码错误,请重新输入')
}
✅ 不要让错误只靠颜色区分
OpenHarmony 可通过:
TtsClient(文本转语音)tts.speak('您的验证码是 ' + this.code)
如果你用的是 OpenHarmony 3.x / 4.x / 5.x 或 ArkUI-X / 元服务,我可以给你对应版本的完整示例代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。