如何忽略 React Native 应用程序的 "Accessibility" 设置?

How to ignore "Accessibility" settings for React Native app?

当我在 iOS 设置中激活 "General -> Accessibility" 中的 "Bold Text" 时,一些文本会被裁剪,因为它们变大并超出了预期的显示区域。

此外,如果我放大 "Accessibility -> Large Text" 中的所有文本,突然间,我的应用程序变得完全无法使用,因为所有内容都在各个方向被裁剪,文本占用大量 space。

但是,当我启用这些设置并转到 TikTok、Wishbones 等应用程序时...我注意到它们似乎不受这些系统更改的影响。

现在没有时间设置所有内容以使我的应用程序响应这些设置,我想知道这些应用程序如何处理 "ignore" 这些设置?

您可以做的一件事是禁用文本的字体缩放,如下所示,这将确保您的字体大小不受辅助功能更改的影响。

Text.defaultProps = Text.defaultProps || {};
Text.defaultProps.allowFontScaling = false;

前言

我认为这是一个有效的问题,我欢迎像上面这样的问题,因为这在一定程度上是我进入辅助功能的方式(试图解决辅助功能错误而不是修复它),但下面 'rant'可能会解释为什么你得到了反对票。

我还在标题为 'Proper use of allowFontScaling = false;' 的部分中解释了一种解决问题的方法,希望对您/其他人有所帮助。

为什么你永远不应该按照 OP 的要求去做。

对于以后遇到这个问题的人,请在执行上述操作之前阅读以下内容。

我知道最后期限就是最后期限,有时您需要将产品上线,如果以上内容 纯粹是为了让您的最小可行产品作为短期解决方案推向市场 那么坚持下去,您必须对自己的目标保持现实,如果直到最后一秒才考虑到可访问性,那么修复可能会花费太长时间,但请在第 2 阶段之前将其作为优先事项。

然而,经验告诉我,如果你以 deliberately suppresses disabled users videos 的公司 TikTok 为榜样,你就选择了一个 非常 糟糕的榜样。 (我无法对从未见过的 Wishbone 发表评论)

现在不要在意排斥他人和禁用他们使用您的应用程序可能需要的功能的道德原因,而是让我们谈谈数字和诉讼,看看我们能否说服您在开发预算中增加一些时间来解决这个问题。

市场规模

Globally, at least 2.2 billion people have a vision impairment or blindness, of whom at least 1 billion have a vision impairment that could have been prevented or has yet to be addressed.

来源:World Health Organisation (WHO)

世界人口有 78 亿,这意味着多达 28% 的用户群可能需要更大的文字才能清楚地看到您的应用程序。 (世界卫生组织公布的数字很高,但我有资格与他们争论!)

如果您禁用字体缩放,那么很可能您还没有考虑点击目标、图标、屏幕阅读器等的大小,因此您的应用可能对盲人或视力不佳的人也完全无用作为有准确性问题(点击目标大小,通常受 font-size 影响)的人,例如患有帕金森病或脑瘫的人。

如果你想让应用程序增长,排除世界四分之一的人口似乎不是一个好主意,除非你正在构建下一个 TikTok 并且有足够的营销预算来覆盖另外 75% 的人口人口。

如果是这种情况,请忽略可访问性,除非您所在国家/地区的法律让您面临法律噩梦......

合法

哦,这将是这样做的最大商业原因,大公司在美国因无法访问其网站而受到诉讼,应用程序也不会落后。

现在我不确定你来自哪个国家,但根据你居住的地方,你可能会发现你的应用程序实际上是违法的。

我本人来自英国,尽管在这里提起诉讼的风险要低得多,但我知道至少有两起诉讼是代表残疾人对盲人无法访问其网站的公司提起的。我们正在追随美国,我相信其他人也会。

哦,整个欧洲的立法都在进行中,称为 European Accessibility Act,所以每个欧盟国家很快就会有相同的法律。

不仅仅是残疾人。

我在大约一米远的 43" 显示器上工作。现在如果 Windows 决定他们停止 font-scaling 我将不得不完全改变我的设置,因为字体太小了我将无法阅读任何内容。

我没有视力障碍,但 Windows、网络浏览器、应用程序等内置的辅助功能确实让我可以按照自己想要的方式工作。

如果我在火车上,我经常会打开无障碍功能,使点击目标更大,这样我就可以在火车颠簸时准确地按下它们,对比度更好(因为太阳的眩光,所以我可以更好地看到屏幕)等

试过新的 'dark theme' 了吗?黑暗主题开始于那些对屏幕亮度和对比度感知有问题的人。看看你面前那个你在上面写字的东西,typewriters / keyboards were invented for blind people 我无法想象没有键盘的世界。

可访问性 = 每个人的更好体验 = 更快乐的客户/用户 = 更好的评论和推荐 = 更多客户 = 更多利润 = 我们开发人员的更多开发工作 = 每个人都赢了。

正确使用allowFontScaling = false;

allowFontScaling = false; 是一个非常有用的东西,可以添加到您的工具箱中。

正如 OP 所发现的,当有人在系统设置中更改字体大小时,布局有时会不起作用。

显然,您应该设计布局以适应较大的文本,但如果从一开始就没有考虑到这一点,这通常会毁掉一个漂亮的设计。

教育您的设计团队需要时间,因此通常留给我们作为开发人员来解决这些问题ems 直到公司政策改变(如果你指出法律影响,这很容易做到,当你提到 multi-million 英镑诉讼和更多观众时,董事往往会醒来!)

相反,如果您遇到与 OP 相同的问题并且无法修复您的布局,您可以执行以下操作并仍然遵守 WCAG 2.1 并为您的用户提供他们可能需要的功能以舒适地使用您的应用程序/网站。

  1. 按照给出的答案中的建议禁用自动字体缩放。
  2. 向您的应用程序/网站添加辅助功能设置部分。
  3. 在那里添加一个选项来控制字体大小、字体粗细等
  4. 如果将字体大小/粗细调整为不适用于您的 'default' 布局的大小,请启用可适应该字体大小/粗细的辅助布局。在此辅助布局中允许高达 200% 的字体缩放(尝试在小屏幕上容纳如此大的字体实际上会很有趣 - 需要一些创造力!)

虽然辅助布局可能不那么好,但至少意味着如果人们需要更大的字体大小/更重的字体粗细,他们可以使用您的网站/应用程序。它可以增加您的潜在客户群并帮助您遵守相关法律。

结论

今天

将辅助功能纳入您的路线图

如果您在设计过程中进行了构建,就不必求助于糟糕的想法,例如禁用字体缩放、忽略可访问性错误等。它还会为您节省很多稍后尝试 reverse-engineer 您的应用程序/网站,以适应人们 需要 的功能。

如果您像 OP 一样接近开发的尾声,请将其作为优先项目添加到您的开发计划中,以增加应用的潜在用户数量并避免法律问题。

/结束咆哮

我希望它至少能帮助一个人看到无障碍的好处。