gpt4 book ai didi

html - 仅在 IOS voiceOver 的弹出模式中使用陷阱焦点

转载 作者:行者123 更新时间:2023-11-29 11:31:00 26 4
gpt4 key购买 nike

我在父组件上有可点击的链接,该链接将在其顶部启动自定义模式。我在仅在 safari ios VoiceOver 上的模态中遇到了很大的问题。滑动焦点位于父级可点击链接后面。我怎样才能只关注模态并在模态弹出后完全禁用父组件。

我的应用程序在 Angular 5 上

这是模态模板

<div class="modal-backdrop modal-open fade in" data-backdrop="static" data-keyboard="false"></div>
<div class="modal fade in" id="confirmModal" role="dialog" aria-labelledby="modal-title" data-keyboard="false" (keydown.escape)="cancel()" >
<div class="modal-content">
<div class="modal-header">
<button type="button" id="btnClose" class="fa fa-times close" data-dismiss="modal" aria-label="Close" (tap)="cancel()" (keydown.spacebar)="cancel()" (click)="cancel($event)" (keydown.space)="cancel()" (keydown.enter)="cancel();" (keydown.tab)="onTab()" (keydown.shift.tab)="onShiftTab()" (keydown.escape)="cancel()" ></button>
</div>
<div class="modal-footer">
<button type="button" id="btnDefault" class="btn btn-default" data-dismiss="modal" (tap)="cancel()" (keydown.enter)="cancel()" (click)="cancel($event)" (keydown.spacebar)="cancel()" (keydown.space)="cancel()" (keydown.tab)="onTab()" (keydown.shift.tab)="onShiftTab()" (keydown.escape)="cancel()" attr.aria-label="cancelbutton">Cancel</button>
<button type="button" id="btnPrimary" class="btn btn-primary" (tap)="onOK()" (keydown.enter)="onOK()" (click)="onOK($event)" (keydown.spacebar)="cancel()" (keydown.space)="onOK()" (keydown.tab)="onTab()" (keydown.shift.tab)="onShiftTab()" (keydown.escape)="cancel()" attr.aria-label="buttonLabel">Confirm</button>
</div>
</div>
</div>

最佳答案

通常,您应该将 html 组织为

<body>
<div>
<!-- your main page -->
</div>
<div style="visibility:hidden">
<!-- your dialog -->
</div>
</body>

因此该对话框是主页的“兄弟”。当您的对话框显示时,您可以将 aria-hidden="true" 添加到主页,这将完全“隐藏”屏幕阅读器的背景页面。如果 VoiceOver 处于隐藏状态,则不会让您通过滑动进入后台页面。

<body>
<div aria-hidden="true">
<!-- your main page -->
</div>
<div style="visibility:visible">
<!-- your dialog -->
</div>
</body>

注意在对话框中使用 CSS visibility 属性。参见 https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/有关更多信息。查找“需要注意的其他问题”标题。

另请注意,您仍然需要在对话框中捕获键盘焦点。 aria-hidden 对键盘没有影响,它只与屏幕阅读器通信。为此,您可以使用 inert 属性 polyfill。有关这方面的信息,请参阅上述博客。

关于html - 仅在 IOS voiceOver 的弹出模式中使用陷阱焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53561764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com