我对 ARIA 及其屏幕阅读器功能相当陌生,但我一直在尝试找出弹出窗口未被读取的原因。当用户单击保存按钮刷新将显示消息的页面时,它会发生更改,但屏幕阅读器不会拾取消息中的更改。
从我读到的内容来看, aria-live="assertive" 和 role="alert" 都应该有效
我尝试了标签和咏叹调属性的各种位置,但没有运气。只有当我重新单击主要内容部分时,它才会读取警报。
我已经在 IE11 和 Chrome 上进行了测试(尽管它实际上只需要在 IE 上工作)
仅供参考,最初所有的 < p > 都是 < c:out >
--主要布局
<div class="body-content" style="padding: 4px 0">
<a id="main_content" tabindex="-1" name="main_content"></a>
<!-- <h1>Main Content</h1> -->
<!-- <p>This is the main content area. -->
<tiles:insertAttribute name="body" />
</div>
Run Code Online (Sandbox Code Playgroud)
--在每个屏幕上包含消息
<jsp:include page="messages.jsp" />
Run Code Online (Sandbox Code Playgroud)
--messages.jsp <
div id="errorDiv" aria-live="assertive" class="error" role="alert">
<c:if test="${not empty errors}">
<c:set var="popupErr" value=""/>
<c:forEach var="error" items="${errors}">
<p > ${error}</p>
<br />
<c:if test="${popupErr != ''}"> …Run Code Online (Sandbox Code Playgroud)