Web浏览器挂钩和自动化

时间:2012-10-12 15:39:31

标签: c# c++ .net browser hook

我正在开展一项项目研究,该项目涉及使用SAPI的语音反馈来浏览网页。盲人和视障人士将使用该应用程序来浏览网页,其中包括当前所选对象的完整语音反馈以及阅读整个页面和填写表格的能力。我在SAPI和辅助功能方面拥有大量的经验,但是我不熟悉HTML和接受这个项目的最佳方法,我想向可能有这方面经验的人寻求指导。我已经解释过的基本概念是让盲人用户在没有屏幕阅读器的情况下使用这个独立产品,并且能够使用键盘导航网页并从我创建的合成器接收语音反馈。我可以使用Accessibility API内置的窗口来显示低视力用户的位置。

谢谢!

2 个答案:

答案 0 :(得分:1)

IE支持所有可访问性界面(我相信所有其他浏览器也都这样做 - sample on SO)。

有两部分 - 使用IAccessible和相关接口的代码访问和良好的HTML(即正确使用UL / LI等语义标签)标记,可能使用额外的CSS辅助功能aria-XXXX属性(即aria-expanded)

可能的起始链接 - What's New for Accessibility in IE8

答案 1 :(得分:0)

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