我的一位同事来找我,他的一个项目有问题.由于我缺乏屏幕阅读器和技术的经验,我无法帮助他,我转向你,SO用户的自豪和强大.
TLDR人员摘要:
我们在UpdatePanels中的网格在屏幕阅读器中不起作用.可能是AJAX工具包的东西?
任何人都可以帮助或提供我们下一步可能采取的步骤的建议吗?
这是我从同事那里得到的(重点是我的,而不是他的,希望提高可扫描性):
I’m presently working on accessibility
and I ran into some issues when it
came to pages using Ajax. I used
screen readers to test the page’s
accessibility. A screen reader
attempts to identify or interpret
what’s being displayed on the screen
with the help of audio
(text-to-speech) and then transmits
the information to the user. This is
very helpful for people who are blind,
visually impaired, illiterate or
learning disabled. Here’s a brief
summary of how a screen reader works.
The screen reader takes a snapshot of
the web page and places the content in
a virtual buffer. The screen reader
uses the virtual buffer to allow the
user to navigate through the content.
If the content is changed with
scripting, then this needs to be
relayed to the screen reader. Without
a mechanism to discover what has
changed, a screen reader user might
not be notified that the content has
changed at all, or only be notified
that the content has been changed, but
will be required to read the whole
document to discover exactly what has
changed. For testing, I used two
types of screen readers, Access To Go
3.0.76 and Jaws 10.0.My findings while testing were that
on the pages that have a gridview
within an update panel, a typical
search page for example, the screen
reader would read, as per usual, all
the information on the page before
searching (search criteria). Upon
pressing the search button, our
gridview containing the column headers
and the result set is generated. The
screen reader does not get the
information that would inform it that
new content has been written to the
page therefore silence is heard. A
technique has been recommended by a
Microsoft employee that involves
inserting a hidden IFrame within the
update panel that would trigger the
screen reader to navigate to the
updated content and read it. The web
site explains how to achieve
accessibility only with the
UpdatePanel control. I’ve tested this
technique and had no success in making
it work. It renders an iframe but the
screen reader still doesn’t know about
an update to the page.Our AjaxControlToolKit version is
1.0.11119.0 and does not provide ARIA (Accessible Rich Internet
Applications) live region markup. Live
regions indicate that content changes
may occur without the element having
focus and provides the assistive
technology information on how to
process those content updates. The W3C
has recommended a semantic on how to
organize the content of a page,
basically giving a role to every
element on the page so that assistive
technologies can convey the
appropriate information to the user.
I’m not sure what this implies in
terms of where we are technologically.
最佳答案 对于屏幕阅读器来说,AJAX网页不是问题,至少对于大白鲨而言,大约2年前(我开发了一些带有大量AJAX的网络应用程序,这些应用程序与Jaws配合得很好).
无论如何,你应该使用良好的屏幕CSS布局和HTML锚点以获得更好的可访问性(title,alt,tabindex,label).
无论如何,如果您真的担心可访问性,您应该通过iframe加载所有内容并使用回调来更新父级(一个小的< script>标记,用iframe内容更新父容器DIV).还可以看看PORK.Iframe(http://schizofreend.nl/Pork.Iframe).