如何检测用户是否启用了 Mac OS 高对比度辅助功能设置?

Sup*_*ade 6 javascript safari macos accessibility high-contrast

我有一个 React/TypeScript 项目,我试图检测用户是否启用了 Mac OS 的任何高对比度辅助功能设置:反转颜色、使用灰度、区分无颜色、增加对比度或增加显示对比度设置。

我想使用 JavaScript/TypeScript 检测这些。

到目前为止,我只能检测到Invert colors


如何检测用户是否启用了任何其他 Mac OS 辅助功能设置?


更多信息:

Luk*_*aic 7

恐怕目前不可能。

从 10.9 开始,Objective-C 中用于确定辅助功能模式是否处于活动状态的功能 (boolean AXAPIEnabled(void);) 已被弃用,并且没有迹象表明有替代模式。您可以在 Apple Developer 网站上看到它。推而广之,如果系统该级别的开发人员不再具有访问权限,我预计 Web 开发人员也将受到限制(就像 AppleScript 编写者似乎无权访问一样)。

一般来说,最需要它的用户不赞成测试辅助技术的存在或辅助功能的激活。它会带来非常真实的风险,即善意的开发人员破坏这些功能(可能是通过取消翻转页面)以及允许不良行为者确定某人的个人健康信息。

尽管它可能会在未来进入第 5 阶段(提案) https://drafts.c​​sswg.org/mediaqueries-5/#prefers-contrast

除此之外,恐怕你正面临着死胡同。