文档管理中心

按钮标注

设计场景

对于用户可点击等操作的任何按钮,如果不是文本类控件,则须通过给出标注信息,包括用户自定义的控件中的虚拟按钮区域,否则可能会导致屏幕朗读用户无法完成对应的功能。此类控件在进行标注时,标注文本不要包含控件类型、“单指双击即可打开”之类的字符串,此部分指引由屏幕朗读根据控件类型、控件状态,并结合用户是否开启了“新手指引”自动追加朗读。

开发流程

在下面的代码片段中,您可以看到Image组件(它实际上是一个播放/暂停按钮),通过设置accessibilityText属性提供标注信息:

收起
自动换行
深色代码主题
复制
  1. const RESOURCE_STR_PLAY: Resource = $r('sys.media.ohos_ic_public_play');
  2. const RESOURCE_STR_PAUSE: Resource = $r('sys.media.ohos_ic_public_pause');
  3. @Entry
  4. @Component
  5. export struct Rule_2_1_5 {
  6. title: string = 'Rule 2.1.5';
  7. @State isPlaying: boolean = false;
  8. play() {
  9. console.info('play audio file');
  10. }
  11. pause() {
  12. console.info('pause playing of audio file');
  13. }
  14. build() {
  15. NavDestination() {
  16. Column() {
  17. Flex({
  18. direction: FlexDirection.Column,
  19. alignItems: ItemAlign.Center,
  20. justifyContent: FlexAlign.Center,
  21. }) {
  22. Row() {
  23. Image(this.isPlaying ? RESOURCE_STR_PAUSE : RESOURCE_STR_PLAY)
  24. .width(50)
  25. .height(50)
  26. .onClick(() => {
  27. this.isPlaying = !this.isPlaying;
  28. if (this.isPlaying) {
  29. this.play();
  30. } else {
  31. this.pause();
  32. }
  33. })
  34. .accessibilityRole(AccessibilityRoleType.BUTTON)
  35. .accessibilityText(this.isPlaying ? 'Pause' : 'Play') // 设置注释信息。
  36. Text('Good_morning.mp3')
  37. .margin({
  38. left: 10
  39. })
  40. }
  41. }
  42. .width('100%')
  43. .height('100%')
  44. .backgroundColor(Color.White)
  45. }
  46. }
  47. .title(this.title)
  48. }
  49. }