gpt4 book ai didi

JavaScript 生成的代码和屏幕阅读器

转载 作者:行者123 更新时间:2023-11-30 00:15:41 24 4
gpt4 key购买 nike

我请求你帮助我,我完全被这个问题困住了。

我想让我的代码能够通过键盘导航并适用于屏幕阅读器设备。但我有几个问题。

这是我在 JS 中的代码:

function changeText()
{
document.getElementById('div1').innerHTML = '<input id="btn2" type="button" onclick="changeText2()" value="Change Text2" />';
document.getElementById('btn1').setAttribute("aria-hidden",true);
document.getElementById('div1').focus();
}
function changeText2()
{
document.getElementById('div1').innerHTML = '<input id="btn3" type="button" onclick="changeText()" value="Change Text" />';
document.getElementById('btn1').setAttribute("aria-hidden",true);
}

和 HTML:

<div id="div1">
<input id="btn1" type='button' onclick='changeText()' value='Change Text'/>
</div>

当我在仅使用键盘(使用制表符)的窗口中导航到 btn1 然后按 enter(或空格)时,按钮已更改,但它失去了焦点。正如你所看到的,我试图用 JS 来聚焦它,但没有结果。我也尝试使用 tabindex 标签,但也没有帮助。我希望它在按下时聚焦,这样屏幕阅读器就更容易导航和访问。

求助!

编辑

Focus 已经通过 James Long 解决方案在按钮上进行了测试并且有效!

但是,btn.setAttribute('aria-hidden', true); 应该被移除。

最终编辑

我刚刚知道了,哈哈!为了让我的示例正常工作,我应该关注 btn2 而不是 btn1。这太傻了!所以,它是这样的:

function changeText()
{
document.getElementById('div1').innerHTML = '<input id="btn2" type="button" onclick="changeText2()" value="Change Text2" />';
document.getElementById('btn2').focus();
}
function changeText2()
{
document.getElementById('div1').innerHTML = '<input id="btn1" type="button" onclick="changeText()" value="Change Text" />';
document.getElementById('btn1').focus();
}

我为自己感到骄傲:)

最佳答案

我手边没有屏幕阅读器,因此很难对此进行测试,但更改按钮可能比更换按钮并专注于按钮本身更幸运。

<div id="div1">
<button type="button" id="btn1">Change Text</button>
</div>

然后是你的 JS:

document.addEventListener('DOMContentLoaded', function () {

function changeText(btn) {

btn.textContent = btn.textContent === 'Change Text'
? 'Change Text2'
: 'Change Text';
btn.setAttribute('aria-hidden', true);
btn.focus();

}

document.getElementById('btn1').addEventListener('click', function (e) {
changeText(e.target);
}, false);

}, false);

关于JavaScript 生成的代码和屏幕阅读器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34808205/

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