2012-10-12 38 views
0

我开始一个项目的研究,涉及用SAPI的语音反馈导航网络。这个应用程序将被盲人和视障人士使用,以当前选定对象的完整语音反馈浏览网页,并能够阅读整个页面并填写表格。我在SAPI和可访问性词汇方面拥有丰富的经验,但是我不太了解HTML和开展此项目的最佳方法,我想要征询可能在这方面有经验的人员的指导。我已经解释了一些基本概念,让盲人用户可以在没有屏幕阅读器的情况下使用此独立产品,并且能够使用键盘浏览网页并从我创建的合成器接收语音反馈。我可以使用Windows内置的Accessibility API来显示低视力用户的位置。网络浏览器挂接和自动化

谢谢!

+0

备注:不需要添加“谢谢你的备注” - upvote/comment/accept取而代之。您没有放置有用的标签(您的问题看起来像“如何使用浏览器使用可访问性”,而标签包含“webbrowser”和“sapi”)。这个问题的范围可能有点太宽(感觉就像“如何设计JAWS克隆”)。 –

+0

我并没有将自己限制为IAccessible,因为我知道有很多其他方法可以通过内部挂钩来处理IWebBrowser2。这个问题留在了更广泛的范围内,我希望获得任何信息,而不会将自己限制为任何一种方法。我确信有人在那里赞赏我的“谢谢你的笔记”...我试图表现出一点点赞赏的帮助/支持... – devHead

+0

仅供参考,JAWS是可怕的IE浏览器.... – devHead

回答

0

我得出的结论,以获得一个说话的Web浏览器其实我有钩与设置和SetWindowsHookEx WebBrowser控件的一个实例。在我的setwindowshookex回调中,监视事件:OB_FOCUS(焦点已更改,可能是键盘或鼠标),然后将具有焦点的对象实例传递给AccessibleObjectFromEvent API。接下来,我得到此对象的IAccessible接口,然后枚举任何子类(如果存在),并将它们与已知的与HTML/Web对象相关的对象列表进行比较,以使用适当的类来解析此字段并通知文本(如果可用)用户处于可编辑字段,焦点按钮等......我还使用IAccessible类通过在当前聚焦的对象上绘制矩形来获取对象位置和当前位置给用户。我还创建了一个只提取链接,文本,删除图像等的课程,为视觉障碍患者提供更轻松,更愉快的网络体验。我仍然有一些夸克可以解决,但进展正在向前发展!

1

IE支持所有的辅助功能界面(我相信所有其他浏览器也是如此 - sample on SO)。

有两部分 - 使用IAccessible和相关接口以及良好的HTML代码访问(即正确使用像UL/LI这样的语义标签),并可能使用额外的CSS可访问性aria-XXXX属性(即aria扩展)

可能起始环节 - What's New for Accessibility in IE8

+0

是的,非常熟悉IAccessible。我用它来自动化Windows应用程序,但从来没有用过IE。我知道我可以使用AccessibleObjectFromPoint()获取光标下方的文本以及对象/文本框的名称。我的挑战主要是在焦点改变时做到这一点,获取当前关注的对象并解密它与预定义控件列表的对照,然后找出获取控件信息和属性的正确方法。我正在潜入一个我不熟悉的领域,而且还没有进行过测试,只是有许多理论我没有应用。 – devHead

+0

理想情况下,我想挂钩浏览器,我可能不得不使用AccessibleObjectFromEvent() – devHead