自定义无障碍滚动步数

设计场景

可调节的滑动条支持长按拖拽调节,调节步长通常允许小于取值范围的1%,适用于视频进度等精细控制场景。然而,长按拖拽操作对视障用户不够友好。为此,当屏幕朗读功能开启时,系统额外支持了通过上下扫动手势调节已聚焦的滑动条,每次调节后自动播报当前状态值(默认为百分比格式)。为避免连续调节时重复播报相同状态值,需通过accessibilityActionOptions配置滑动条的无障碍操作步数,确保每次调节步长大于或等于取值范围的1%。

accessibilityActionOptions说明:

开发流程

如下示例实现一个可调节的滑动条,并指定无障碍操作的步数:

@Entry
@Component
export struct Rule_2_1_15 {
  title: string = 'Rule 2.1.15';
  @State scrollStep: number = 3;

  build() {
    NavDestination() {
      Column() {
        // 创建一个滑动条,最小值为0,最大值为100,当前值为10,步长为10。
        Slider({
          min: 0,
          max: 100,
          value: 10,
          step: 10,
          style: SliderStyle.OutSet
        })
          // 在屏幕朗读模式下,聚焦滑动条后执行上下扫动,滑动条调节步数为3。
          .accessibilityActionOptions({ scrollStep: this.scrollStep })
          .onChange((value: number, mode: SliderChangeMode) => {
            console.info('value:' + value + 'mode:' + mode.toString());
          })
      }
      .width('100%')
      .height('100%')
    }
    .title(this.title)
  }
}