适合盲人使用的网页浏览方法

文档序号:6375953阅读:585来源:国知局
专利名称:适合盲人使用的网页浏览方法
技术领域
本发明涉及一种网页浏览方法,主要是一种适合盲人使用的网页浏览方法。背景介绍如何让盲人能克服视力的障碍上网浏览,是个很有现实意义的课题,因为这能显著改善盲人的生活质量。现在,大多数盲人很少上网,如欲上网则都是通过一种“读屏软件”将显示屏上的文字信息转化成语音。这种软件通过Windows操作系统的“钩子”机制提取屏面上显示的文字,再通过朗读软件将这些文字转换成语音(就象公交车上报站名所使用的技术一样)。对于原来完全无法上网浏览的盲人而言,读屏软件至少使盲人在一定程度上可以上网“浏览”实际上是“收听”了,这当然是好事。但是,另一方面,让盲人用这样的方式上网还是十分不便,这主要表现在 一般网页上的文字信息是很多、很庞杂的,以新华网首页为例,从上到下,在头条新闻之前就有上百个链接,例如“新闻时政国际日本地方法治”、“图片高层军事评论台湾社会”,等等、等等,有些网站的网页前面还有不少广告。常人一般都是凭视觉先跳过这些而直奔主题,但是盲人就不一样了,如果要等读屏软件把这些都读完以后才能读到头条新闻,就往往已经很不耐烦了。 网页中有很多链接,作为链接“锚点”的文字常常在颜色、粗细、字体等视觉形象上有所不同,或者在把光标移到锚点上时会显示某种符号,但是这些特征盲人都是看不见的。 网页的浏览是以“点击”机制为基础的,不管是鼠标点击还是触屏点击,都离不开眼睛。既然盲人看不见,就得有一种导航的机制去帮助他们,但是读屏软件显然达不到这个效果。 网页上通常会有许多图片,构成这些图片的信息在流量中往往占很高的比例,显示网页时的延迟往往是因为要下载这些图片而造成,但是这些流量对于盲人却毫无意义。此外,网页的文本中常常带有许多脚本,这些脚本对于盲人也没有什么意义(而且也不安全),盲人所关心的只是那些可以转化成语音的文字信息。所以,从流量的角度看,一个网页中对盲人有用的流量实际上只占很小一部分。所以,对于盲人来说,读屏软件只是聊胜于无,而不是一种能够令人满意的网页浏览手段。而本发明的目的,就是要为盲人提供较为理想的网页浏览手段和方法。

发明内容
针对现有技术的缺陷,本发明提供了一种适合盲人使用的网页浏览方法,其显著的特点是先对网页进行预处理,将其内容加以组织,添上导航信息,再转化成语音朗读出来,为盲人提供带有导航的语音浏览。本发明所述的这种适合盲人使用的网页浏览方法,其主要特征和操作步骤如下I)对网页进行基于HTML文本解析的预处理,把内容中不能转换成声音的信息过滤掉,具体方法见后;
2)对网页内容加以分析和改造,在此基础上将平面结构的网页内容改成层次结构,并插入必要的文字,以提供分层次导航,具体方法见后;3)将经过预处理后的网页中的文字信息转换成语音,具体方法见后。进一步,还可以将文本中出现的非标题性链接组织在一起,并插入必要的提示文字,以提供链接导航,具体方法见后。本发明有益的效果是提供了一种适合盲人使用的网页浏览方法,既提供对于网页内容的分层次导航,又提供对于链接的导航,并将网页内容转化成语音朗读出来。下面通过一个假想的情景说明采用本方法后的效果。例如,对于某个网站的首页,在比较理想的情况下,盲人浏览者听到的可以是这 样某某网站,请选择收听内容I、今日要闻2、体育3、历史4、财经5、法治6、娱乐7、文化8、论坛盲人浏览者可以通过键盘上的数字键选取,或者在听到例如“体育”时立刻就按回车键加以选取。选取了例如“体育”类之后,盲人浏览者听到的可以是这样I、巅峰对决!林丹胜李宗伟夺金2、撑杆跳女皇奥运绝唱3、男子百米飞人大战博尔特破纪录成功卫冕4、看博尔特挑战人类极限5、名嘴侃奥运中国军团的八个田径得牌点6、田径首日中国铁饼两人进决赛李艳凤预赛第三7、刘翔目前一切都很正常争取比赛时出最佳状态8、何可欣战高低杠跳马中国成看客9、揭阳籍选手傅海峰奥运夺金家乡人民组团观赛同样,盲人浏览者可以通过键盘上的数字键选取,或者在听到例如“体育”时立刻就按回车键加以选取。体育新闻可能远远超过九条,而数字键盘上只有十个数字键,再说一次报得太多也没有必要,但是浏览者可以按‘0’键选择继续。假定浏览者选择了第三条,则可听到北京时问8月6日凌晨,在伦敦奥运会的男子百米飞人决战中,博尔特以9秒63夺得金牌,刷新了奥运会纪录。另一位牙买加人布雷克以9秒75获得银牌,美国名将加特林则以9秒79获得铜牌...最后,浏览者还可听到
本页有3个链接I、博尔特再现闪电庆祝动作跪地亲吻跑道2、奥运田径奖牌盘点中国历届田赛佳绩3、陈定创奥运纪录超越刘翔成中国最年轻田径冠军此时浏览者可以按数字键或回车键选听,也可按‘#,键回到上一段;或不按任何键,等超时候自动回到上一段。显然,在这样的方法中,盲人浏览者的感受远远好于使用读屏软件。实际的情况也许没有这么理想和清晰,因为例如“今日要闻”、“体育”等词语最终来自所浏览的网页,具体用的是什么词语取决于网页的原作者,也可能语义并没有那么清晰。但是,尽管如此,比之 读屏软件,本方法所提供的分层导航和链接导航还是使盲人的浏览效果大为改善。


附图I表示典型浏览器的构造和功能划分。附图2是典型网页中内容的一个片段,说明了信息的线性结构。附图3表示经过对网页的编排处理、可以用来为盲人提供层次式导航的立体的信息结构。附图4说明把本发明所述方法实施成盲人专用浏览器时的系统结构。附图5说明把本发明所述方法实施成盲人专用门户网站时的系统结构。
具体实施例方式附图I表示典型浏览器的构造和功能划分。浏览器的构造可以从功能上分成前端和后端两大部分,前端的核心是一个HTML语言解析器,后端则将解析所得的内容以图像的形式呈现在显示屏上。由于盲人的眼睛看不见,就需要将浏览器的后端改成以语音形式呈现解析所得的文字信息。附图2表示典型网页中信息的结构,是网页内容的一个片段。网页的内容本质上是层次结构的,一般都分成若干不同的板块,但是在典型的网页中由HTML语言所描述的内容在形式上却是线性的字符流,如果只是按先后次序将这些字符呈现出来,就是像附图2所示那样的片段。例如图中的“新华热词”与下面几行就不在同一层次上,“新华热词”相当于磁盘上的“文件夹”(即目录),而下面几行则相当于文件夹中的文件,而每个具体文件的内容则可能在另一个独立的网页中。但是,如果只是按先后次序将这些内容朗读出来,这样的层次关系就不明显了,这就好像在Windows的资源管理器中把所有作为中间结点的文件夹全都展开了以后一样。明眼人还可迅速浏览而从中找到感兴趣的内容,但要盲人从头一直往下听,好久以后才能到达感兴趣的内容,就使人不耐烦了。其实,HTML语言中并非没有描述这种层次关系的成分,所以一般的浏览器都利用这些信息把属于同一板块的内容组织显示在网页的同一个区域,看的人则一下就把自己的眼球转向感兴趣的板块。所以,如果说HTML语言对内容的描述是线性的,则一般浏览器的呈现显示是平面的。但是,这对于盲人还是起不到作用,因为盲人不能凭视觉迅速转到感兴趣的板块。而如果让盲人从头开始一个字一个字听下来,就势必会很不耐烦。所以,对于盲人,我们需要把网页的内容还原成立体的层次结构,成为类似于资源管理器显示文件夹的形式,这样才能为盲人提供层次式的导航。附图3表示经过对网页的编排处理、可以用来为盲人提供层次式导航的立体的信息结构。这里,就像在资源管理器中所见的文件系统那样,信息是按层次组织和排列的,看的人只展开自己感兴趣的文件夹,一层一层往下跑,很快就可找到感兴趣的文件,每个文件都有个独特的“路径”。这里,我们在概念上已经把一个网页按层次分解成了好几个网页,图中的①表示第一层导航页面,这个网页只是通过相当于文件夹名称的标题为第二层提供索引和导航,如果需要还可有第三层、第四层。这样,盲人只要听上几个标题并按键选择就可进入自己感兴趣的内容。不过,所谓分解成几个网页只是概念上的,在物理上既可以分解成不同的网页、也可以留在同一个页面中,而只是在页面中建立了页内链接。在HTML语言中,用来表明层次关系的成分主要是标签〈DIV〉,一个<DIV>标签表示一个分段的开始,</DIV>则表示分段的结束。不过一个DIV不一定就是内容中的一个板块,而很可能只是跟显示的方式和风格相关。在实际的网页上,常常有很多DIV嵌套在一起,每一层往往只是为了加上一种风格特征。每一个DIV标签,也就是每一个DIV分段,都属于某 一个“类”、即class,都可以带上一个任意的class名,所以实际的DIV标签都至少是这样<DIV class=〃abcdefg” >。这样,我们可以把DIV想象成文件夹,其class名则相当于文件夹的名称。虽然DIV标签不一定是根据内容的性质而加,但是实际上跟内容是有关的,因为浏览器要根据DIV标签将同一板块的内容按相同的风格显示在同一区域。例如,下面几行是从某个网页中整理出来的信息片断〈HTMLXBODYXDIV. 25XDIV. 26XDIV. 29XDIV. 1XDIV. 77>:国际新闻〈HTMLXBODYXDIV. 25XDIV. 26XDIV. 29XDIV. 1XDIV. 77XDIV. 78XDIV. 79X0L>:科罗拉多枪击案〈HTMLXBODYXDIV. 25XDIV. 26XDIV. 29XDIV. 1XDIV. 77XDIV. 78XDIV. 79X0LXLI>:叙利亚局势〈HTMLXBODYXDIV. 25XDIV. 26XDIV. 29XDIV. 1XDIV. 77XDIV. 78XDIV. 79X0LXLI>:朝鲜的新气象为了简化叙述,这里的DIV标签都以编号代替其class名,例如〈DIV. 25>实际上可能是〈DIV class=〃common” >,〈DIV. 26> 实际上可能是〈DIV class=" short" >,等等。这里每一行的冒号‘’之后是从网页的HTML文本中整理出来的某一文字信息,之前则是该文字信息的以标签为中间节点的路径,这是一个由层层嵌套的标签所形成的“标签栈”。其中的标签<0L>表示“有序列表(Ordered List)”,而〈LI〉则表示有序列表中的表项。从这里可以看出,“国际新闻”与后面三条有相同的路径前缀,所以属于同一板块,但是“国际新闻”与后面三条不属同一层次。显然,并非每一个DIV标签所代表的分段都有文字内容,这是因为DIV所代表的可能只是某种显示风格(Style),所以实际上也许〈DIV. 29XDIV. 1XDIV. 77>合在一起才代表着内容的一个板块,才相当于一个名为“国际新闻”的文件夹。具体哪几个DIV标签合在一起代表着一个板块,则要看上下文。例如,如果仅看这四行,这里的〈DIV. 78>和〈DIV. 79>合在一起只是代表着概念上的一个子板块,这个子板块自身没有文字内容,其内容就是一个有序列表。不过,跟文件系统相比有个不同。在文件系统中,一个文件夹中不能有多个同名的子文件夹或文件,同一文件夹中的每个子文件夹或文件的名称都必须是唯一的,但是在网页上却不受这个限制,例如假定前面有个分段是〈DIV class = "abcdefg”〉,然后有个分段<DIV class = 〃xyz”>,后面又有个〈DIV class = "abcdefg”〉,这样也是允许的,由于中间有个〈DIV class = 〃xyz” >,前后的两个〈DIV class = "abcdefg” >就属于两个不同的板块,只是共存在同一个更高层次、更大的分区中。由此可见,有了覆盖整个网页的这种关于标签栈和文字内容两方面的信息,就可以重构出关于网页内容的结构上的骨架,类似于我们在资源管理器中所见文件系统结构那样的树形结构。有了这样的骨架,就可以实现按层次导航,就像我们在资源管理器中浏览文件目录那样。对于从事系统软件开发的工程师而言,为文件系统开发一个资源管理器并非难事;写一程序根据关于标签栈和文字内容两方面的信息为网页重构其内容骨架、从而实现按层次导航同样并非难事。至于朗读,即把文字内容转化成语音,则已是一种比较成熟的技术,例如公交车上就采用这样的技术报站名。

基于以上的叙述,我们可以通过下述方法实现层次式的语音导航I、解析目标网页的原始HTML文本,在解析的过程中过滤掉于内容文字无关的信息,包括〈SCRIPT〉、〈STYLE〉、和〈MG〉。2、摘取网页内容中的文字信息,并生成每一段文字的路径、即标签栈,将这些信息写入一个中间文件中(或保存在内存中)。3、分析中间文件中每一行的标签栈和文字信息,重构出关于网页内容结构的骨架。4、根据关于网页内容结构的骨架,将第一层次中各个节点的标题集中在一起生成出第一层导航页面(或导航分段),对导航页面中的各个标题加上编号,并使其链接到具体的分段或网页。5、第一层次中的每一个节点代表着一棵子树,整体上属于第二层次的内容分属各棵子树,并相当于该子树的第一层次,按该子树的第一层次处理,余类推。6、逐次将每一层次的内容转换成语音,并接受键盘输入作为对下一层的选择,就可实现层次式的语音导航。层次式的语音导航可以给盲人带来很大的方便,但是这还不够,还需要有链接导航。一般而言,锚挂在文字信息上的链接有两种情况,下面通过实例加以说明〈HTMLXBODY〉· . .〈DIVXOLXLIXa href = 〃http://www. xyz. com. cn/. · ·"> 叙
利亚局势</a>〈HTMLXBODY〉· . .〈DIVXPXa href = "http://www. xyz. com. cn/..."> 叙利亚 </a>局势日渐恶化这里的第一条用于标题,整个字符串“叙利亚局势”链接到另一个网页或者分段,这种情况我们在前面已经看到过,只是前面把链接说明〈a href = 〃http://www. xyz. com.cn/. . . 〃X/a>省略掉了,因为由这一对标签所提供的链接信息与文字信息的呈现并无关系,所以我们在解析HTML文本的过程中并不把这个信息摘取出来,而是另外保存在一组数据结构中(下面会讲到,现成的HTML解析器就是这样工作的)。由于我们在导航页面(或分段)中对标题编了号,所以盲人按相应的数字键、或者在浏览器还在朗读这几个字的时候就按‘Ok’键,就可以转入所链接的目标页面,这属于分层次导航。但是第二条则不同,这里的链接只是锚挂在“叙利亚”这几个字上、而不是整个字符串上。在常规的浏览器上,往往在显示时把这几个字变一下颜色或字体,或者在用户把光标箭头移到这几个字上时换成特殊的图标(例如手指),此时点击一下就可转入所链接的目标页面,然而这对于盲人显然不合适。所以,分层索引需要导航,链接同样也需要导航。本发明采用这样的办法实现链接导航I、在对网页的HTML文本进行解析的过程中将除标题链接以外的所有链接信息都摘取出来,存储在一组数据结构中,记录下每个链接所锚挂的文字和链接目标的URL。2、将这些链接加上编号,并生成一个链接导航或分段。3、在朗读完本网页的内容之后就接着朗读该链接导航分段的内容,并接受数字键 或‘Ok’键输入,例如本页有3个链接一、叙利亚二、···三、·· ·这样,盲人就能按数字键或‘Ok’键选择链接了。如前所述,除选择链接之外,也可以按‘0’键继续呈现下一分页,也可按‘#,键退
回上一层。从头开始开发一个浏览器是一项不小的工程,但是这并无必要,我们完全可以利用开源的浏览器软件,在此基础上加以裁剪、修改、扩充。即使是不开源的浏览器,一般也会提供二次开发的接口,也可加以裁剪、修改、和扩充。在开源浏览器软件中,Firefox/mozilla和Lynx 二者最有典型性,前者是开源浏览器中最完善、功能最全的,但是我们只需要用其前端,主要是HTML解析器就可以了,因为后端都是有关图形显示的功能。我们所需要的后端,则只是把文字转化成语音的朗读功能,这可以利用另一个开源软件eSpeak来实现。当然,对于其前端需要加上一些修改和扩充,以实现本发明所述的方法。后者,即Lynx,则是一个字符模式的浏览器,在互联网发展的早期用的很多,虽然历史已经很长,却也一直在跟踪浏览器技术的发展。所谓字符模式,使指Lynx不提供图形界面,而只是面向字符型终端上的文字显示,所以其后端相当简单。由于图形显示与盲人无关,只要将Lynx的文字输出用eSpeak朗读出来,原则上就可实现语音浏览,在此基础上再加上本发明所述的按层次导航和链接导航,就可以做成一个盲人专用浏览器。或者,也可以用Lynx加本发明所述的按层次导航和链接导航做成一个盲人专用的门户网站,把对于网页的预处理放在门户网站上,而只把经过整理后生成的带有导航的小页面传到盲人的终端设备或浏览器上。这样盲人的终端设备(或浏览器)就可以做得很简单,并且大大减小了通往盲人终端设备的数据流量,因为像〈SCRIPT〉脚本、图片等信息都已在门户网站上被过滤掉了。所以,我们采用Lynx作为本发明实施例的基础,但是以哪一个软件作为基础只是实现细节的不同,这种细节上的不同不影响本发明的实质,而本发明的实质是对平面式的普通网页进行预处理、以提供按层次导航和链接导航,并将文字内容转化成语音。
不管是将本发明所述的方法实现成盲人专用浏览器,还是实现成盲人专用门户网站,其基本的技术关键是共同的,下面对这些技术关键结合Lynx的源代码作一说明。首先,Lynx的前端和后端的分界是函数display_page()。当Lynx的前端完成了对网页的HTML解析的时候,网页中所有的文字性内容都已被摘取到一个HTLine数据结构队列中,后端的作用就是把这些文字性内容呈现在显示屏上。尽管Lynx只是一个字符模式的浏览器,其后端比Firefox当然简单多了,但也还是比较复杂的,因为需要让光标在显示屏上能上下左右移动,所以采用了一种称为Curses的技术。但是,对于我们的目的,则要简单得多,我们只要通过一个循环把这些HTLine结构中的文字性内容打印出来供朗读就行了。但是Lynx并不提供我们所需的关于标签栈的信息。为此,我们需要对前端加上一些改造,具体的方法是I、修改HTLine数据结构的定义,使其提供两个缓冲区,一个像原先一样用来盛放从HTML文本中摘取的文字性内容,另一个则用来盛放相关的标签栈信息。 2、在前端的数据结构中维持一个标签堆栈、实际上是一个队列,在解析HTML文本的过程中每当碰到一个由标签代表的分段时,就将一个代表着标签的数据结构压入这个堆栈;然后在碰到相应的结束标签时则弹出并释放这个数据结构。Lynx的前端本来就有这样的机制,但是压入堆栈的所有同种标签都通过指针指向同一个标签描述块(每种标签都有自己的描述块),例如所有代表着<DIV>标签的数据结构都指向DIV标签的描述块,而不管其class名是什么,这样就失去了一些重构信息结构骨架所需的信息。所以,现在要做一点修改,就是在压入堆栈的数据结构中包含一个标签描述块副本(原来只是一个指针),再加上class名、以及相应的编号。3、在解析HTML文本的过程中,每当将一个代表着标签的数据结构压入标签栈之后就调用一个过程update_tag_stack O ,根据堆栈的内容生成一个形似〈HTMLXBODY〉. . . <DIVX0LXLI>的字符串,盛放在当前HTLine数据结构的标签栈信息缓冲区中。4、完成对整个网页的HTML解析并打印一个HTLine数据结构中的内容时,先打印其标签栈信息,再打印一个分隔符‘’,然后打印其文字性内容。这样,就可以得到类似前面所举例子中那样的输出,例如〈HTMLXBODYXDIV. 25><DIV. 26XDIV. 29XDIV. 1XDIV. 77XDIV. 78XDIV. 79><0L>:科罗拉多枪击案在Lynx前端的输出中,〈SCRIPT〉和〈STYLE〉的内容已经被过滤掉,表明链接目标的“href=”也已被过滤掉,但是与例如〈MG〉、〈FORM〉、〈BUTTON〉等标签相关的文字信息却没有被过滤,所以在输出前可以调用一个过程trim_text()加以修剪过滤。这个函数的伪代码描述如下
权利要求
1. 一种适合盲人使用的网页浏览方法,其特征在于该方法包括如下步骤 I. I、对网页进行基于HTML文本解析的预处理,把内容中不能转换成声音的信息过滤掉; I.2、对网页内容加以分析和改造,在此基础上将平面结构的网页内容改成层次结构,并插入必要的提示文字,提供分层次导航; 1.3、将经过预处理后的网页中的文字信息转换成语音。
2.根据权利要求I所述的适合盲人使用的网页浏览方法,其特征在于 2.I、将文本中出现的非标题性链接组织在一起,并插入必要的提示文字以提供链接导航。
3.根据权利要求I所述的适合盲人使用的网页浏览方法,其特征在于通过下述方法实现层次式的语音导航 3. I、解析目标网页的原始HTML文本,在解析的过程中过滤掉于内容文字无关的信息,包括〈SCRIPT〉、〈STYLE〉、和 <IMG> ; 3. 2、摘取网页内容中的文字信息,并生成每一段文字的路径、即标签栈,将这些信息写入一个中间文件中或保存在内存中; 3. 3、分析中间文件中每一行的标签栈和文字信息,重构出关于网页内容结构的骨架; 3. 4、根据关于网页内容结构的骨架,将第一层次中各个节点的标题集中在一起生成出第一层导航页面或导航分段,对导航页面中各个标题加上编号,并使其链接到具体的分段或网页; 3.5、第一层次中的每一个节点代表着一棵子树,整体上属于第二层次的内容分属各棵子树,并相当于该子树的第一层次,余类推; 3.6、逐次将每一层次的内容转换成语音,并接受键盘输入作为对下一层的选择,实现层次式的语音导航。
4.根据权利要求2所述的适合盲人使用的网页浏览方法,其特征在于通过下述方法实现链接导航 4. I、在对网页的HTML文本进行解析的过程中将除标题链接以外的所有链接信息都摘取出来,存储在一组数据结构中,记录下每个链接所锚挂的文字和链接目标的URL ; 4. 2、将这些链接加上编号,并生成一个链接导航页面或分段; 4. 3、在朗读完本网页的内容之后就朗读该链接导航页面的内容,并接受数字键或‘Ok’键输入; 4.4、除选择链接之外,也能够按‘0’键继续呈现下一分页,也能够按‘#,键退回上一层。
5.根据权利要求I或2所述的适合盲人使用的网页浏览方法,其特征在于 5.I、实施成盲人专用浏览器,通过HTML语言解析器将解析所得的内容以语音形式呈现。
6、根据权利要求I或2所述的适合盲人使用的网页浏览方法,其特征在于 6. I、建立盲人专用门户网站,门户网站上配有实施本发明所述方法对网页的HTML文本进行预处理的软件; 6.2、在用户端设备上将经过门户网站预处理的文字信息转化成语音。
全文摘要
本发明涉及一种适合盲人使用的网页浏览方法,先对网页进行预处理,将其内容加以组织,添上导航信息,再转化成语音朗读出来,为盲人提供带有导航的语音浏览。主要特征和操作步骤如下1)对网页进行基于HTML文本解析的预处理,把内容中不能转换成声音的信息过滤掉;2)对网页内容加以分析和改造,在此基础上将平面结构的网页内容改成层次结构,并插入必要的文字,以提供分层次导航;3)将经过预处理后的网页中的文字信息转换成语音。本发明有益的效果是提供了一种适合盲人使用的网页浏览方法,既提供对于网页内容的分层次导航,又提供对于链接的导航,并将网页内容转化成语音朗读出来。下面通过一个假想的情景说明采用本方法后的效果。
文档编号G06F17/30GK102831229SQ20121031499
公开日2012年12月19日 申请日期2012年8月30日 优先权日2012年8月30日
发明者毛德操, 王承志, 范志强, 徐鼎鼎 申请人:浙大网新科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1