OpenHarmony 滑杆可访问性设计指南
一 设计目标与原则
二 语义与信息架构
三 交互与控件配置要点
四 跨设备与多语言适配
五 ArkTS 与 JS 实现示例
@Entry
@Component
struct AccessibleSlider {
@State value: number = 50
readonly min: number = 0
readonly max: number = 100
readonly step: number = 5
build() {
Column({ space: 12 }) {
// 1) 可访问名称(label)
Text('音量')
.fontSize(16)
.fontWeight(FontWeight.Medium)
// 2) 滑杆本体(可聚焦、可操作)
Slider({
value: this.value,
min: this.min,
max: this.max,
step: this.step,
style: SliderStyle.InSet,
direction: Axis.Horizontal
})
.width('80%')
.showTips(true) // 实时值提示
.showSteps(true) // 步进刻度
.onChange((v: number, mode: SliderChangeMode) => {
this.value = v
// 3) 可选:同步朗读当前值(示例日志,读屏需结合语义节点)
console.info(`当前音量:${v}`)
})
// 4) 辅助说明(范围、步长、单位)
Text(`范围 ${this.min}–${this.max},步长 ${this.step},单位:%`)
.fontSize(12)
.fontColor(0x666666)
}
.padding(16)
}
}
要点:通过label 文本 + 辅助说明提供完整语义;启用showTips/showSteps提升可见性与定位;在 onChange 中同步业务状态与日志/读屏提示。
<!-- index.hml -->
<div class="slider-group">
<text class="label">亮度</text>
<slider min="0" max="100" value="{{ brightness }}" onchange="onBrightnessChange" mode="inset"></slider>
<text class="hint">范围 0–100,单位:%</text>
</div>
// index.js
export default {
data: { brightness: 50 },
onBrightnessChange(e) {
this.brightness = e.value; // 同步更新可见与读屏信息
}
}
要点:保持“标签—滑杆—说明”结构;在说明中标注范围与单位;在事件回调中更新状态与反馈。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。