Firefox 如何防止Windows叙述者说;“可编辑文本”;对于role=";上的每个HTML标记;“警惕”;在FF中
我有一个简单的生活区:Firefox 如何防止Windows叙述者说;“可编辑文本”;对于role=";上的每个HTML标记;“警惕”;在FF中,firefox,accessibility,wai-aria,narrator,Firefox,Accessibility,Wai Aria,Narrator,我有一个简单的生活区: <div aria-atomic="true" role="alert" id="AlertText"></div> 现在,在FF+Windows“讲述人”中,活动区域工作正常,我更改了文本,警报按预期发出。然而,原始的警报文本实际上非常复杂,并且带有BR和H2标记。问题在于,每次文本中出现关闭标记时,警报都会显示“可编辑文本” 我曾想过将警报移动到一个没有标记的隐藏活动区域,但即使如此,尽管警报工作正常,但当它到达警报角色div的结束标记(
<div aria-atomic="true" role="alert" id="AlertText"></div>
现在,在FF+Windows“讲述人”中,活动区域工作正常,我更改了文本,警报按预期发出。然而,原始的警报文本实际上非常复杂,并且带有BR和H2标记。问题在于,每次文本中出现关闭标记时,警报都会显示“可编辑文本”
我曾想过将警报移动到一个没有标记的隐藏活动区域,但即使如此,尽管警报工作正常,但当它到达警报角色div的结束标记(即我的示例中的div#AlertText)时,它在FF中表示“可编辑文本”
现在在IE中,它没有这个问题,MacOS叙述者也没有这个问题,它只是让人困惑
我担心有人会听到它并认为它是一个文本输入或其他东西(尽管它在文本输入字段上显示“编辑文本”)
我更喜欢使用原始容器作为警报角色,但我不能让它多次说“编辑文本”,或者正常用户和FF用户已经习惯了它。。。在此方面的任何帮助都将不胜感激
我目前正在开发Win8.1叙述者
编辑:独立HTML中的实时代码示例(但我没有在Win叙述者中使用此示例)
角色警报测试
设置文本
概述
过去五年的年度股息历史记录
document.getElementById('btnAlert')。onclick=function(){
var dom=document.getElementById('overviewText');
dom.appendChild(document.createTextNode(“Almarai公司对Almarai的最新股息等于每股1.00沙特里亚尔。交易日期为2015年4月6日,支付日期为2015年4月14日。股息类型为年度”);
appendChild(document.createElement('br'));
appendChild(document.createTextNode(“当前股息收益率等于1.90%));
appendChild(document.createElement('br'));
appendChild(document.createTextNode(“52周股息总额等于1.00沙特里亚尔”);
appendChild(document.createElement('br'));
appendChild(document.createTextNode(“总回报,以股息再投资计算,过去12个月等于-38%,过去3年等于+62%);
dom=document.getElementById('annualDividendText');
dom.appendChild(document.createTextNode(“2011年:总股息1.50沙特里亚尔,股息收益率(基于年终股价)3.91%));
appendChild(document.createElement('br'));
appendChild(document.createTextNode(“2012年:总股息0.83沙特里亚尔,股息收益率1.96%));
appendChild(document.createElement('br'));
dom.appendChild(document.createTextNode(“2013年:总股息1.00沙特里亚尔,股息收益率1.90%));
appendChild(document.createElement('br'));
dom.appendChild(document.createTextNode(“2014年:总股息1.00沙特里亚尔,股息收益率1.30%));
};
您有样品可以试一试吗?JAWS、NVDA或Voiceover会发生什么情况?@slugolicious我在Voiceover和JAWS中查看了它,也就是说它应该是什么样子,但出于某种原因,NVDA不想安装在我的计算机上。我为您添加了一个隔离的HTML,但我无法在“讲述者”中获得它的警报,因为某些原因,尽管代码是相同的。。。还是希望有帮助。你有样品可以试试吗?JAWS、NVDA或Voiceover会发生什么情况?@slugolicious我在Voiceover和JAWS中查看了它,也就是说它应该是什么样子,但出于某种原因,NVDA不想安装在我的计算机上。我为您添加了一个隔离的HTML,但我无法在“讲述者”中获得它的警报,因为某些原因,尽管代码是相同的。。。还是希望能有所帮助。
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Role Alert Test</title>
</head>
<body>
<button id="btnAlert" href="#">Set Text</button>
<div aria-atomic="true" role="alert" aria-live="assertive" aria-relevant="additions text">
<div class="AccessibleVersion-OverviewHeadingContainer">
<h2 class="AccessibleVersion-SubHeading" id="AccessibleVersion-SubHeading-Overview">Overview</h2>
</div>
<div class="AccessibleVersion-OverviewTextContainer" aria-labelledby="AccessibleVersion-SubHeading-Overview" id="overviewText"></div>
<br />
<h2 class="AccessibleVersion-SubHeading" id="AccessibleVersion-SubHeading-OverviewHistory">Annual dividend history for the last five years</h2>
<div id="annualDividendText" aria-labelledby="AccessibleVersion-SubHeading-OverviewHistory"></div>
</div>
<script type="text/javascript">
document.getElementById('btnAlert').onclick = function() {
var dom = document.getElementById('overviewText');
dom.appendChild(document.createTextNode("The latest dividend of Almarai Company for Almarai is equal to 1.00 Saudi Riyal per share. The ex-date was on 06/04/2015 and it was paid on 14/04/2015. The dividend type is Annual."));
dom.appendChild(document.createElement('br'));
dom.appendChild(document.createTextNode("Current dividend yield is equal to 1.90 percent."));
dom.appendChild(document.createElement('br'));
dom.appendChild(document.createTextNode("52 weeks dividend sum is equal to 1.00 Saudi Riyal."));
dom.appendChild(document.createElement('br'));
dom.appendChild(document.createTextNode("Total return, calculated with dividends reinvested, is equal to -38 percent for the past 12 months and +62 percent for the past 3 years."));
dom = document.getElementById('annualDividendText');
dom.appendChild(document.createTextNode("2011: total dividend 1.50 Saudi Riyal, dividend yield (based on year-end share price) 3.91 percent."));
dom.appendChild(document.createElement('br'));
dom.appendChild(document.createTextNode("2012: total dividend 0.83 Saudi Riyal, dividend yield 1.96 percent."));
dom.appendChild(document.createElement('br'));
dom.appendChild(document.createTextNode("2013: total dividend 1.00 Saudi Riyal, dividend yield 1.90 percent."));
dom.appendChild(document.createElement('br'));
dom.appendChild(document.createTextNode("2014: total dividend 1.00 Saudi Riyal, dividend yield 1.30 percent."));
};
</script>
</body>
</html>