我正在创建一个Asp.net MVC站点,我想要显示消息“必需”以显示所需的输入字段(不是“字段'名称'是必需的”,因为消息已经低于如果用户没有填写值,则为右侧字段。我通过自定义RequiredAttribute实现了这一点。
现在我担心有人使用屏幕阅读器。如果某人失明并且正在使用屏幕阅读器阅读该页面,则该文本将显示为“必需”,但由于他无法看到控件,因此如果显示“The Field”Name“需要”。
有没有办法在屏幕上显示特定文字,但为屏幕阅读器提供另一种文字?
答案 0 :(得分:1)
不,这是不可能的,主要是因为没有办法可靠地检测是否正在使用屏幕阅读器。您可能,我强调可能能够检查User-Agent字符串,但这假设每个屏幕阅读器都会使用自定义UA字符串来标识自己, 和您考虑了这些的所有可能变体。简而言之,如果它完全奏效,那将导致非常脆弱的设计。
但是,我认为你看错了这个问题。可及性不仅仅是失明等明显的残疾。一般来说,只有视力不佳的人,但不一定会使用屏幕阅读器,有学习或其他认知障碍的人等。目标应始终是明显的设计。显示整个文本是否有害“字段'Foo'是必需的。”或者否则会对非受损用户造成任何问题?答案是不。它可能过于冗长,但显示全文并不成问题。另一方面,隐藏部分文本是否会对受损用户造成额外压力?答案是:它可能。因此,最好始终显示全文。