跳到内容
CrossFly 是 100% 开源在 GitHub 关注我们
CrossFlyCrossFly
开始使用

本页面由葡萄牙语机器翻译,可能存在错误。葡萄牙语版本为准。

无障碍访问(a11y)

坦诚地说明框架当今能提供什么:聚焦于在 CrossFly 原生/OpenGL 中可落地执行的部分。这里的很多无障碍实践都强化了响应式设计——采用字体相对单位就是对用户尺寸调整设置的尊重。

宽裕的触摸目标

用 Relative 来设定可触摸区域的尺寸,绝不要用极小的像素值:

botao.getStyle().autoHeight(Relative.ofFont(2.5f));            // 足够高以便手指点击
icone.getStyle().autoWidth(Relative.ofScreen(0.12f, ScreenSize.MIN))
     .autoHeight(Relative.ofScreen(0.12f, ScreenSize.MIN));   // 可自适应的方形

实用规则:目标约为 48 dp 等效尺寸——Relative.ofFont(2.5f) 通常就够用。

文本对比度

确保足够的对比度;框架能帮上忙:

int fundo  = cs.surface.color();
int texto  = ColorUtils.contrastText(fundo);                  // 根据背景取黑/白
int melhor = ColorUtils.getContrastColor(fundo, 0xFF000000, 0xFFFFFFFF);  // 在 2 个选项间选择

尊重浅色/深色主题(通过 Styles.setColorScheme/setDarkMode)——不要固定写死会忽略当前模式的颜色(参见 浅色/深色模式)。

可缩放的文本

由于字体是以相对单位度量的,文本和布局会随应用的字体缩放而缩放——这是使用 Relative.ofFont(...) 并避免固定像素的直接结果。让 Label 自动换行;不要截断关键信息。

多感官反馈与语音

Device.vibrate(50);            // 重要操作的触觉确认
Device.beep();                 // 声音提示
Device.textToVoice(mensagem);  // 语音朗读(辅助)

将其作为辅助手段,而非唯一渠道——结合视觉 + 触觉/声音。

最佳实践

  • 用 Relative.ofFont/ofScreen(MIN) 设定触摸目标;不要用只有几像素的按钮。
  • 通过 contrastText/getContrastColor 处理对比度;遵循浅色/深色模式。
  • 不要截断关键文本;让它缩放/换行。

常见错误

  • 使用固定像素的极小按钮/图标(难以触碰;不会缩放)。
  • 固定写死的颜色在深色模式下破坏对比度。
  • 仅依靠颜色来传达状态(应加上图标/文本)。

局限性

屏幕阅读器功能取决于平台/启动器——核心中没有通用的语义无障碍层。请优先落实上面那些可执行的项目。

另请参阅

这个页面有帮助吗?