ios-accessibility-validator

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Accessibility Validator

无障碍验证器

Checklist

检查清单

VoiceOver

VoiceOver

  • Interactive elements have
    .accessibilityLabel()
  • Decorative elements:
    .accessibilityHidden(true)
  • Related elements:
    .accessibilityElement(children: .combine)
  • Labels are localized
  • 交互元素包含
    .accessibilityLabel()
  • 装饰性元素设置
    .accessibilityHidden(true)
  • 关联元素使用
    .accessibilityElement(children: .combine)
  • 标签已本地化

Dynamic Type

动态字体(Dynamic Type)

  • Use
    .font(.body)
    not
    .system(size:)
  • Use
    @ScaledMetric
    for spacing
  • Layout adapts to large text
  • 使用
    .font(.body)
    而非
    .system(size:)
  • 使用
    @ScaledMetric
    处理间距
  • 布局适配大字号文本

Color Contrast

颜色对比度

  • Text: 4.5:1 (normal), 3:1 (large)
  • Use semantic colors (
    .primary
    ,
    .secondary
    )
  • Color not sole indicator
  • 文本:普通文本对比度4.5:1,大文本3:1
  • 使用语义化颜色(
    .primary
    ,
    .secondary
  • 不单独依赖颜色作为提示

Touch Targets

触摸目标

  • Minimum 44x44pt
  • 最小尺寸44x44pt

Quick Fixes

快速修复方案

IssueFix
No label
.accessibilityLabel("desc")
Decorative
.accessibilityHidden(true)
Group
.accessibilityElement(children: .combine)
Small target
.frame(minWidth: 44, minHeight: 44)
Fixed fontUse
.body
,
.headline
, etc.
问题修复方法
无标签添加
.accessibilityLabel("desc")
装饰性元素设置
.accessibilityHidden(true)
关联元素分组使用
.accessibilityElement(children: .combine)
目标尺寸过小设置
.frame(minWidth: 44, minHeight: 44)
固定字体使用
.body
,
.headline

Severity

严重程度

  • 🔴 Critical: Blocks accessibility
  • 🟡 Moderate: Reduces usability
  • 🟢 Minor: Enhancement
  • 🔴 严重:阻碍无障碍访问
  • 🟡 中等:降低可用性
  • 🟢 轻微:优化建议