即使父div没有关联的点击处理程序,JAWS也会将标题读取为可点击的

我正在为Angular项目进行辅助功能测试。我有一些如下的模态代码

<div class="modal fade" bsmodal #cancelConfirmModal="bs-modal" tabindex="-1" role="dialog"
    attr.aria-label="Cancel Modal" aria-hidden="true">
    <div class="md-dialog modal-md">
        <!-- Modal content-->
        <div class="md-content">
            <div class="md-header">
                <div class="md-title pull-left">
                    <h4 tabindex=0 class="headerBottomMarginNone"> Cancel</h4>
                </div>
                <button type="button" class="close-popup" (click)="hideCancelModal()">
                    <img src="{{ pathImg }}/close.png" alt="Close Icon"
                        (mouseover)="changecloseIconOnHover('close-popup3')"
                        (mouseout)="changecloseIcon('close-popup3')" id="close-popup3">
                    <label class="sr-only">Close</label>
                </button>
            </div>
            <div tabindex=0 class="md-body">
                {{ cancelMessageBody }}
            </div>
            <div class="md-footer">
                <button type="reset pull-right" class="ts-btn ts-btn-primary no-btm-margin" (click)="revert()">Yes</button>
                <button type="pull-right" (click)="hideCancelModal()"
                    class="ts-btn ts-btn-tertiary margin-left10 no-btm-margin">Cancel</button>
            </div>
        </div>
    </div>
</div>

当我跳至<h4 tabindex=0 class="headerBottomMarginNone"> Cancel</h4>时,其显示为取消标题4的可点击性。在父级甚至父级上没有单击事件。根据质量检查的偏好,h4可以通过标签访问。如何阻止JAWS宣布可点击?

iCMS 回答:即使父div没有关联的点击处理程序,JAWS也会将标题读取为可点击的

简短答案

删除tabindex

长答案

标题不应包含tabindex(可能不是tabindex="-1",如下所述)。

带有tabindex的任何东西都被认为是交互式的,并且期望您已经提供了有关焦点,单击,键盘键等的处理程序。

您的质量检查不正确,这使软件更难使用。

唯一适合在标题上使用tabindex的情况是,如果您需要以编程方式对其进行聚焦(例如,在加载新页面的AJAX应用程序中,这是一种很好的做法)页面上的标题级别1,以使屏幕阅读器用户知道新页面已加载。)此时,唯一合适的tabindextabindex="-1",因此它只能以编程方式而不是通过 tab 键。

您的质量检查人员可能认为屏幕阅读器用户需要能够集中标题,事实并非如此!他们使用屏幕阅读器中的快捷键来访问页面上的标题。

也将其从<div tabindex=0 class="md-body">中删除,因为它也不是交互式的。

最后,很可能您不需要模态本身,因为当您打开模态时,您应该将第一个交互式元素或关闭按钮(在您的情况下看起来都是取消按钮)作为焦点。),但是您的软件中可能存在我不知道的功能,因此这只是要考虑的一点。

本文链接:https://www.f2er.com/2024125.html

大家都在问