【发布时间】:2021-09-27 16:36:37
【问题描述】:
我使用的是 Mac (10.8.5) 和 Safari [6.2.4]。我创建了一个字段集来对我的输入进行分组,并向其中添加了一个图例文本。我还应用了 css 来隐藏 UI 中的图例 - 但是图例和标签在 DOM 中可用。
Windows/IE 上的 NVDA 可以正常工作。它读取字段集图例并读取输入的标签。
但在上面的 Mac/Safari 组合中,Apple Voice over 并没有读取图例。 Mac/Safari 版本有什么关系吗?
<fieldset >
<legend class="screen-read-only">Please sign in to this application</legend>
<div >
<div >
<label for="USER" class="screen-read-only">Enter your email or username here to test screen reader in MAC</label>
<input class="no-inline-checker ng-pristine ng-invalid ng-invalid-required ng-touched" tabindex="0" type="text" id="USER" name="USER" placeholder="Username or Email Address" data-ng-model="email" required="" data-autocorrect="off" data-autocapitalize="off" data-test-id="myr-signIn-emailAddress" aria-required="true" aria-invalid="true">
<span class="inline-checker icon-error sign-in ng-hide" data-ng-show="submitted && form.USER.$error.required" aria-hidden="true"></span>
</div>
</div>
<div class="row overrite-margin">
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6"><div class="myr-remember-me row"><span data-test-id="myr-singin-rememberMe" class="myr-checkbox col-xs-1" tabindex="0"><input data-ng-model="rememberMe" type="checkbox" name="rememberMe" id="rememberMe" class="myr-checkbox-input ng-pristine ng-untouched ng-valid" tabindex="0" aria-checked="false" aria-invalid="false"> <label for="rememberMe" class="myr-checkbox-box"><span class="screen-read-only">Remember me checkbox</span></label></span>
<span translate="_remember_me">Remember Me</span></div></div>
</div>
</fieldset>
【问题讨论】:
-
能否提供示例代码?也许是 CodePen 或 JSFiddle?我知道 iOS / VoiceOver 的这个问题,但不是 macOS / VoiceOver。
-
@aardrian 更新了代码 sn-p。应用在标签上的 css 是为了将标签隐藏在普通用户的视线之外。
-
你的意思是对 sighted 用户隐藏它,而不是普通用户。另外,请记住,整整三分之一的屏幕阅读器用户都不戴金光闪闪。您使用的 CSS 是什么?离屏?剪辑?显示属性?
标签: macos safari accessibility fieldset wcag