part-3-chapter

advertisement
Browser Augmentation
Vicki L. Hanson,1 John T. Richards2 and Cal Swart3
1
2
3
IBM T. J. Watson Research Center, vlh@us.ibm.com
IBM T. J. Watson Research Center, ajtr@us.ibm.com
IBM T. J. Watson Research Center, cals@us.ibm.com
Abstract. In this chapter we examine ways of programmatically expanding the functionality
of conventional browsers. We consider various mechanisms for creating extensions and addons in Internet Explorer and Firefox, and briefly review other browsers. We explore some
existing browser extensions. The focus is on accessibility extensions, but some prominent
other examples of browser extensions are also mentioned. Information for using and creating
various types of extensions is presented. Finally, the usefulness of browser extensions compared with other accessibility enablement options for the Web is considered.
1 Introduction
There are many ways to achieve the goal of an accessible Web, as discussed
throughout this book. Directly authoring accessible Web pages is one way (see Part
2 - Evaluation and Methodologies). Transcoding, changing already created Web
pages to make them more accessible, is another (see Part 3 Chapter 5). In addition,
browsers themselves have built-in features to adjust some aspects of page presentation to make the content more accessible (see Part 3 Chapter 2). Most browsers also
provide extension mechanisms that allow developers to augment browser functionality. Such augmentation allows for the creation of a number of accessibility features.
Talking browsers are probably the best known form of browser augmentation
for accessibility. These browsers allow blind, dyslexic, or otherwise print-disabled
users to hear the content of a Web page read aloud. Early versions of this technology
(Asakawa and Itoh 1998; Zajicek, Powell and Reeves 1998) have largely been sup-
2
Hanson, Richards, and Swart
planted by talking browser options included in conventional browsers (see Fire Vox1;
Opera2) or by all purpose screen readers such as JAWS®3 or Window-Eyes4.
In this chapter we will examine the issue of browser augmentation for adding
functionality to make Web pages more usable by people with limited sensory, motor,
or cognitive abilities. We begin by giving some examples of enhanced accessibility
features based on browser augmentation and then look at some of the augmentation
techniques available in current browsers, focusing primarily on Internet Explorer™
(IE) and Mozilla Firefox.
2 Overview
The World Wide Web Consortium (W3C) 5 is committed to an accessible Web. To
accomplish this goal, the Web Accessibility Initiative 6 was created. A three part
approach to Web accessibility has been taken by this group. The first, which arguably receives the most attention, is the Web Content Accessibility Guidelines
(WCAG)7 for markup languages to be used for authoring accessible content. The
second, the Authoring tool Accessibility Guidelines, addresses authoring tools for
generating markup. The third, of most relevance to the present discussion, is the
User Agent Accessibility Guidelines (UAAG)8 for Web browsers.
WCAG guidelines prescribe how websites can be authored so that the content on
the site meets specific accessibility requirements. These guidelines alone, however,
often fall short of providing the kinds of page renderings needed by many users.
Specifically, they may not address the need to unclutter a page or provide for legible
fonts -- particularly when the definition of ‘legible’ is very subjective. What the
guidelines can do, however, is provide mechanisms for the type of flexibility needed
1
http://www.firevox.clcworld.net/
http://www.opera.com/products/desktop/voice/
3
http://www.freedomscientific.com/fs_products/JAWS_HQ.asp
4
http://www.gwmicro.com/Window-Eyes/
5
http://www.w3.org
6
http://www.w3.org/WAI
7
http://www.w3.org/WAI/intro/wcag.php
8
http://www.w3.org/WAI/intro/uaag.php
2
Browser Augmentation
3
by browsers to implement these individual choices (Hanson, Snow-Weaver and
Trewin 2006).
The fact is, no one page rendering will be accessible to all users. While WCAG
has been able to specify, for example, markup needed to make pages accessible to
screen readers, it is not possible to specify one page rendering that will be able to be
easily readable by everyone with vision impairments. Thus, there is the need for
individual users to be able to indicate the optimal rendering for themselves. In this
sense the UAAG and browser extensions / add-ons provide for flexible rendering of
pages, customized to individual users.
Modern browsers have incorporated several useful accessibility features (see
Part 3 Chapter 2 - Desktop Browsers). These features generally include font enlargement (at least over a small range of sizes), text, link and background color modifications to enhance contrast or suit the preferences typical of users with some forms
of dyslexia, and whole page magnification (zooming).
These features, while having the advantage of being built-in, do not include the
full complement of adaptations that a disabled user might want or need. To satisfy
these more diverse requirements, developers can create new functions and integrate
these extensions within the browser. While all major browsers support extensions,
they do so in very different ways. In this section, we will examine current browser
extension mechanisms and specific accessibility uses of these extensions.
3 Browser Extension Mechanisms
Each of the modern browsers has their own mechanism for extending functionality.
We will begin by discussing extension mechanisms provided by Internet Explorer
(IE), and will then continue to Firefox, Safari, and Opera.
3.1 Internet Explorer
A number of mechanisms exist for augmenting the functionality of IE (Roberts
1999). They include custom style sheets and various program objects that are bound
to the browser. The mechanisms to be discussed here work for IE 5 and above.
Style Sheets
A potentially simple mechanism to modify all Web pages rendered in IE is to
use a custom style sheet. Style sheets can become quite complex, modifying many
aspects of a browser’s rendering. In general, though, style sheets provide a simpler
means of making changes than creating new program objects; style sheets can be
created with nothing but a text editor and require no compilation or build procedure.
4
Hanson, Richards, and Swart
Once created, a style sheet can be loaded by using the Accessibility dialog, available
on the Tools menu, under Internet Options.
A more sophisticated use of the IE style sheet mechanism is to create style
sheets under program control and inject them into IE. This technique is used by our
Web Adaptation Technology software to combine several separately specified preferences into a single style sheet (Richards and Hanson 2004). Style sheets in this
software allow for combinations of page magnification, line spacing, and letter spacing.
Browser Objects
More sophisticated techniques for adding functionality to IE involve the creation
of additional program objects that are bound to the browser, effectively adding new
programmed behaviors. Examples of these program objects include Browser Helper
Objects (BHOs), Band Objects, and ActiveX controls.
Many BHOs can be found for IE. An example of a commonly available BHO
that enhances IE for purposes other than accessibility is provided by Adobe. Their
BHO adds the ability to convert a Web page to a PDF document with a single click.
This BHO is added to IE when Adobe Acrobattm is installed.
In general, bands package a set of new features with an associated user interface.
Like BHOs, band objects can listen to browser events if they register themselves to
do so (an example of this is given below). Bands generally have a richer user interface than BHOs although a BHO may occasionally pop up dialogs to interact with
the user.
Our Web Adaptation Technology software uses a band to provide the control interface for selecting accessibility preferences (Richards and Hanson 2004). The
band, shown in Figure 1, features large buttons allowing for easy viewing and clicking. Preferences are organized by type and grouped within simple panels. The full
functionality of this band is revealed in a series of panels that allow users to control a
number of options for page rendering and mouse and keyboard operation. Users can
select the panels by clicking the large left and right arrows on the left hand side.
Help for the current panel can be obtained by clicking the large ? button. This band
and a BHO together provide the new accessibility features in our software; the band
allows the user to set their preferences and the BHO modifies the content based on
those preferences as pages are loaded. In this software, examples of its use include
reading text aloud via IBM’s ViaVoice™, enlarging text, changing colors of page
elements, and reformatting the page layout to one column.
This software uses a Browser Helper Object (BHO), written in Visual J++, to
make various modifications to the browser’s Document Object Model (DOM) after it
is built by the browser but before the content is displayed on the screen. Unlike the
user style sheet mechanism reviewed above, this BHO has the ability to make a wid-
Browser Augmentation
5
er range of modifications (e.g., modifying element attributes based on a potentially
complex analysis of nearby elements). In addition to programmatic access to the
DOM, a BHO has the ability to respond to user events (such as user mouse movements over a document). This ability allows the Web Adaptation Technology BHO
to respond to mouse hover events to read the underlying text aloud (a hover being
defined as the user moving the mouse over a non-empty region of the page and then
pausing). A BHO can also respond to general browser events (such as the events
related to fetching a new page).
Figure 1. A screenshot from the Web Adaptation Technology showing the band with one of its
panels, speak text, visible.
The interactions between the browser and the band can get rather elaborate.
Again, consider our Web Adaptation Technology. The help content for this software
is provided by a collection of Web pages. An example of the help for speak text is
shown in Figure 2. Links to the other software functions (such as magnify, text size,
6
Hanson, Richards, and Swart
banner text, etc) are shown on the help links on the left hand navigation bar. Clicking on one of these links causes the associated page to be loaded. Because the band
has registered an interest in browser navigation events it gets control each time a
page is loaded. It examines the url for the new page and, if it is for one of the help
pages, switches its panel so that it corresponds to that page. In this way we can keep
the band’s interface and the help content in synchronization allowing the help to
reliably refer to visible band elements. Similarly, if help is being viewed, a click on
the left or right band buttons causes the corresponding help page to be loaded by the
browser.
Figure 2. Help content and band panels synchronized in the Web Adaptation Technology Help
system through the handling of browser navigation events.
Browser Augmentation
7
ActiveX objects are arguably the most complex of the objects that can be bound
to the IE browser. A rather large example of an ActiveX object is the Java runtime
support. ActiveX objects in general are COM applications that are registered with
the browser and loaded with each instance. They are distributed as Windows Dynamic Link Libraries (DLLs). These DLLs can be created by programming in C++,
Visual Basic, ATL, and C# using the Microsoft Visual Studio development environment9. Other frequently used ActiveX objects include Quicktime and Flash objects.
For accessibility, Muta, Ohko and Yoshinaga (2005) created an ActiveX component
that can be utilized by website owners to provide features for visitors to their website
who have vision limitations.
3.2 Mozilla Firefox
The Firefox browser was designed to be easily extended. Indeed the browser itself is largely written using the same mechanisms an extension developer would use.
As an open source browser, this extensibility provides obvious advantages. In this
section we review some of the ways to add new capabilities to Firefox.
Extensions
The Firefox Accessibility Extension10 is one well known extension. It provides
for a number of features that allow for easier navigation of elements of a Web page
as well as changing some elements of page presentation for users with vision impairments. It also provides validation tools for developers to check their pages for
accessibility best practices.
Consistent with the general extensibility of Firefox, Mozilla (the underlying
platform) provides a fairly self-contained application development and deployment
9
Unfortunately, although many add-ons are harmless, malware writers have used
these techniques to spread spyware and monitor browser activity. Users need to be
aware of the add-ons that are installed. These can be managed from IE by selecting
Manage Add-Ons on the Tools menu.
10
http://firefox.cita.uiuc.edu/index.php
8
Hanson, Richards, and Swart
platform. Applications written for this platform, including browser extensions, run
on all the systems on which Mozilla runs (including Windows, Linux, and
Mac). This means that most of the code an application extension developer would
create only needs to be written once.
Extensions are created in the XML User Interface Language (XUL), JavaScript,
HTML, and CSS. A simple text editor can be used to create these extensions. Alternatively a sophisticated development environment like Eclipse can be used. There
are many tutorials on the Web for learning how to start programming an extension.
Searching for “developing Firefox extensions” will return many hits.
The XUL feature of this platform permits the runtime assembly of complex user
interfaces. From XUL, one can call JavaScript functions to accomplish other tasks,
such as initialization, event handling, and DOM manipulation. The overlay feature of
XUL also permits changes to the browser UI, such as menus and toolbars (elements
called the chrome in Mozilla terminology).
Our Firefox accessibility software, accessibilityWorks (Hanson et al. 2005), uses
XUL as the means of building the panels corresponding to the IE band discussed
previously. Several features of XUL made this task particularly easy. XUL supports
rapid, iterative development of GUIs. Since there is no compilation and build step,
changes can be immediately tested. And since we can register for Firefox events we
can trigger such things as DOM manipulation at page load time.
The Cross-Platform Component Object Model (XPCOM) is another feature of
the Mozilla environment that allows developers to perform lower-level tasks that
cannot be done in XUL or JavaScript. Mozilla has a large variety of XPCOM objects
that can be instantiated from JavaScript. These objects allow preferences to be retrieved and set, and files to be read and written. Developers can also write their own
XPCOM objects. In accessibilityWorks, we created an XPCOM to connect our
software to text-to-speech engines such as IBM’s ViaVoicetm.
In general, Firefox extensions have access to all of the Firefox user interface and
components. Extensions can modify the user interface by adding buttons, toolbars,
and menus. They can modify fonts and colors, capture events, and change Web pages before the user sees them. Extensions have access to the Firefox XPCOM library
for low-level functionality. Extensions are only limited by the developer’s imagination.
Browser Augmentation
9
Style Sheets
Unlike IE, there has not been a way for users to add a style sheet to Firefox via a
simple browser option. However, users can edit userContent.css and userChrome.css
which reside in the user’s Firefox profile chrome directory (see User CSS11). Extensions can register stylesheet URIs as additional user and UA style sheets using the
style sheet service available in Firefox 1.5 and later (see Using the Stylesheet Service12). A relatively simple extension could be built with this mechanism to allow
users to easily create and inject style sheets.
Themes
Firefox also provides a mechanism for users to customize the look and feel of
the browser – a mechanism not available in IE. Many existing themes and information about how to develop new themes are available on the Mozilla website (see
Firefox Themes13; Developing Themes14).
Plugins
Firefox also provides a mechanism for users to embed content in a page. Typical
examples of this are Quicktime and Macromedia Flash. These are developed using
the Netscape plugin SDK and an environment that supports C/C++ and Makefiles.
Microsoft Visual Studio would be one such environment.
See
http://www.mozilla.org/projects/plugins/
11
http://www.mozilla.org/unix/customizing.html#usercss
http://developer.mozilla.org/en/docs/Using_the_Stylesheet_Service
13
https://addons.mozilla.org/firefox/themes/
14
http://developer.mozilla.org/en/docs/Themes
12
10
Hanson, Richards, and Swart
3.3 Other Browsers
Safaritm
Apple’s Safari browser is primarily extended by way of plug-ins. There are
many plug-ins currently available. Pimp my Safari15 is a particularly good source of
Safari plug-ins.
Apple provides the Web Kit framework for developing plug-ins. This framework supports two types of plug-ins: Web Kit-based architecture and the Netscape
plug-in architecture. Your choice of framework would depend on your target platform(s). Netscape style plug-ins support a standard API and can be supported in
multiple browsers and can be deployed on cross-platform systems such as Windows
and Linux. The Web Kit-based framework plugins can only be deployed on Mac
OS-X applications that support the Web Kit framework. Netscape style plugins are
written in a cross-platform C API while Web Kit plugins are written using an Objective-C API. Web Kit-based plugins can also take advantage of Cocoa classes (see
About Plugins16).
Apple provides two excellent resources for developing Safari plug-ins. These
are available in the Apple developer area (see WebKit Plug-in Programming
Topcs17; WebKit Objective-C Programming Guide18). There are samples of both in
the Web Kit developer section. Developers would most likely use Apple’s XCode
Tool suite to develop extensions.
Safari also supports custom style sheets to modify web pages. Just specify the
style sheet to load in the Safari->Preferences->Advanced dialog.
15
http://pimpmysafari.com/
http://developer.apple.com/documentation/InternetWeb/Conceptual/WebKit_Plugi
nProgTopic/Concepts/AboutPlugins.html#//apple_ref/doc/uid/30001248-206518
17
http://devworld.apple.com/documentation/InternetWeb/Conceptual/WebKit_Plugin
ProgTopic/WebKit_PluginProgTopic.pdf
18
http://devworld.apple.com/documentation/Cocoa/Conceptual/DisplayWebContent/
WebKit_DisplayWebContent.pdf
16
Browser Augmentation
11
Operatm
The Opera browser provides a number of extension mechanisms. Style sheets
and/or JavaScript files can be invoked on every page load. A style sheet can be
selected for the browser by using the Style option available from Tools menu, Preferences->Advanced->Content->Style. Style sheets operate in a similar manner to
IE discussed above (see Opera Style Sheets19).
User JavaScript allows the full range of JavaScript functionality. For example,
events can be handled, and cookies can be read. In addition, scripts on a loaded page
can be rewritten, overriding a page’s event handlers, and changing variables and
functions used by the page (see User JavaScript20). A JavaScript file can be selected
for the browser by using the JavaScript available from the Tools menu, Preferences->Advanced->Content->JavaScript.
Opera also supports add-ons through plug-ins. Plug-ins add additional capability
to the browser. Opera has standard plugins for objects such as Adobe Acrobat,
Flash, Quicktime and Java applets (see Opera plugins 21 ). Opera supports the
Netscape4 plugin API. This means that Opera may support any Netscape compatible
plug-in. Developers can use the standard Netscape Software Development Kit. By
developing to a standard API, the plugin can run in multiple browsers. Developers
can use a variety of environments to develop Opera plugins, such as MS Windows
Visual Studio, and essentially any environment that supports C/C++ and Makefiles.
3.4 Impact of Browser Implementation Details
Seemingly trivial differences in browser implementations can result in surprisingly large differences in the ease of creating efficient browser extensions. Consider,
for example, one of the DOM transformations we have created for both IE and Firefox as part of our Web Adaptation Technology and accessibilityWorks software mentioned earlier. In our page layout transformation, we radically restructure the DOM
so that multicolumn content is ‘linearized’ to be a single column. From the user’s
19
http://www.opera.com/support/tutorials/stylesheets/
http://www.opera.com/support/tutorials/userjs/
21
http://www.opera.com/docs/plugins/
20
12
Hanson, Richards, and Swart
point of view this has the advantage of eliminating the need for horizontal scrolling
when very large text enlargements are applied to the page. In Figure 3 we show a
Web page with text enlargement using accessibilityWorks. In Figure 4 we show that
same page with the same text enlargement after the one column transformation has
been applied.
In IE we coded a relatively efficient BHO in Java to perform this DOM-based
linearization. In Firefox we created a comparable function using JavaScript. One
might guess that the Java implementation would be considerably faster given that
Java will typically run much faster than interpreted JavaScript. However, the Java
implementation needed to invoke API calls to traverse and modify the DOM and
those APIs were invoked by way of a COM interface. The JavaScript implementation on the other hand was interpreted within the same computational context as the
Figure 3. A page with substantial text enlargement prior to linearization .
Browser Augmentation
13
Figure 4. The same page as in Figure 3, but with page linearization.
rest of the Firefox browser (an attribute that results from the fact that extensions to
Firefox are comparable in nearly all respects to native browser functions), leading to
faster overall performance for the linearization.
Another example of the impact of browser implementation choices on extension
feasibility is provided by a comparison of the ease of implementing the event handling underlying text-to-speech triggering. Our user interaction model for speaking
text aloud involves, among other things, the ability for the user to simply move the
mouse to an area of interest and then pause. This hover starts the playback of text
from a reasonable starting point in the underlying block of text. Moving the mouse
14
Hanson, Richards, and Swart
outside this area of text is a way to stop the speech playback and, perhaps, start playback on another area of text.
In order to implement this interaction model we need to augment the DOM by
adding SPANs to break up large blocks of text into sensible chunks for possible
playback. Without SPANs we would always start from the top of the current text
node (which could be quite far from the user’s point of interest). Having inserted
SPANs, we then need to attach event handlers to deal with mouse events of interest.
In Firefox we attach an event handler to the top level BODY element and any
FRAME or IFRAME elements. In IE we were forced to attach event handlers to
every node that supports them and in which we have an interest, typically most nodes
in the DOM. This more costly DOM augmentation is required because the IE event
object does not contain a pointer to the DOM element that initially received the
event. Firefox’s event object does contain such a pointer so we can deal with the
event at the high level node that has our handler attached. Specifically, we can initiate speech playback for just the text in that node.
4 Future Directions
It should be clear by now that browsers are not merely stand-alone applications but
platforms for the creation of new functionality through browser extensions. As
noted previously, no single browser, unmodified, provides all the features desired by
every user. The types of browser augmentations described in this chapter enable
new features to be added to browsers.
While we have focused on browser technology, Web content and applications no
longer need to be tied to the browser. Browser engines are being used in standalone
applications that can run on the desktop. For example, XULRunner uses the Gecko
engine to build standalone desktop applications that have all the richness of the Web.
Widgets, such as those of Opera and Yahoo, provide another option. Opera, for
example, uses their rendering engine in their widget technology to provide desktop
widget applications.
Given the need for an accessible Web, one might think that browsers would
evolve over time to incorporate all needed accessibility options into the browser
itself, thus obviating the need for accessibility extensions. While it is true that many
of the options needed by users are available in modern browsers, the needed options
are not completely available in existing browsers. Moreover, the seemingly inevitable complexity of browser interfaces tends to hide features, making accessibility
features available only to experienced users or users supported by sophisticated support personnel. Many older and disabled users, however, are neither experienced
nor well supported. They are not likely to discover accessibility features buried in
Browser Augmentation
15
complex browser interfaces. Sa-nga-ngam and Kurniawan (2007) found, for example, that items hidden in menus were extremely difficult for older adults to find. In
comparing users performing tasks with IE7 and Firefox 2.0, they found longer times
and fewer successful task completions for these users when features were hidden in
menus. The streamlined default IE7 install that hides much function, therefore, was
more difficult to use than Firefox 2.0 for these older adults. Although not tested with
younger users, it is likely that the results obtained by Sa-nga-ngam and Kurniawan
for older adults would generalize to many other users as well, whether disabled or
not.
We suspect that even if found on toolbars or within menus, some accessibility
features are simply too complex to either understand or set (e.g., having to manually
configure a suitably contrasting combination of text foreground, text background,
link, visited link, and hover colors). For users with disabilities, moreover, the consequences of not knowing what to do can be significant, ranging from inefficient
browser use to just giving up on using the resources of the Web. The point here is
that even when browsers include all needed accessibility features they may not expose them in a manner easily used by those who need them (see Trewin 2000). For
that reason, various accessibility browser augmentations necessarily repackage functionality, such as color changes, already included in the browser itself (see, for example, Firefox Accessibility Extension22; Hanson et al. 2005; Muta et al. 2005).
5 Our Opinion of the Field
We have argued previously that the economics of content development will continue to favor an approach based on automatic content transformation (generally
browser-based transformations) rather than an approach which presumes that new
more accessible content will be created (Richards and Hanson 2004). This is based
on consideration of a few facts. The cost of creating accessible Web content can be
substantial, especially so if developers have to go back and re-work legacy content.
Moreover, the economic incentive to address the needs of what is perceived to be a
small segment of the market has suggested to website owners that website accessibility will not translate into large financial gains. The W3C and others have pointed to
22
http://firefox.cita.uiuc.edu/index.php
16
Hanson, Richards, and Swart
the benefits of accessible websites23, but it is only recently that some website owners
have reported financial benefits of such development that outweigh the costs (Sloan
2006). As we’ve discussed here, however, an ‘accessible’ website, as defined by
meeting these guidelines, may not be accessible to the many users whose needs fall
outside those encompassed in content guidelines. In these cases, other approaches
must be used. Some of this is handled by the User Agent Accessibility Guidelines.
In other cases, browser augmentation is important.
Depending on specific requirements, browser extensions can have advantages
for accessibility transformations over other technologies. Transcoding using a proxy
server is another method of re-writing Web pages to be accessible (see Part 3 Chapter 5). In our earlier work with proxy servers, however, we found that we were unable to meet our users’ requirements using this approach. Three specific areas of
difficulty were identified (Hanson and Richards 2004). First, the proxy server often
made transcoding errors or omissions – hardly surprising given the complexity of the
task that browsers face (rendering complex and often malformed HTML, JavaScript,
cascading style sheets, and a large and growing number of third-party plug-ins). Also
different browsers would render things differently which was hard to anticipate on
the server. Second, secure sites transmitted content to the browser in an encrypted
form. A proxy cannot see and modify the content flowing through a Secure Sockets
Layer (SSL) connection unless that connection is mediated by a pair of SSL sockets
at the proxy itself. Through this mechanism it is possible to see and modify the
content on the proxy. Performing such an operation, however, violates the end to end
security expected of secure connections and can only occur if the user proceeds after
being warned of a serious security violation. Third, there was often a problem in
simply enabling a connection to the proxy server. In order to set a browser to go
through a proxy, the HTTP proxy must be set on the browser itself. This is not
always possible since proxies cannot be cascaded. Thus, users who had a proxy already set, such as for some corporate firewalls and some ISPs (e.g., AOL), are prevented from connecting to a remote proxy. In addition to these three overarching
issues, proxies also pose potential copyright problems since they transform and serve
content not owned by the proxy’s owners. Also, transcoding poses the general problem of scalability in production systems as so much content needs to not only flow
through them be non-trivially transformed as it flows.
23
http://www.w3.org/WAI/EO/Drafts/bcase/Overview
Browser Augmentation
17
Of course, browser extensions are not without their downsides. The largest of
these is the requirement that users download and install some software. For experienced computer users, this may not be a problem. For inexperienced users, however, even seemingly simple downloads and installations can be daunting.
6 Conclusions
Browser extensions can provide important added functionality for browsers. Whether this mechanism or another option will provide the best means of accomplishing a
task will depend on the project goals.
We’ve covered here some of the accessibility extensions that have been developed. Given the open computing environment currently enjoyed, it can be anticipated that many other such extensions will be developed and made available to the
accessibility community.
References
Asakawa, C. and Itoh, T. (1998). User interface of a Home Page Reader.
In Proceedings of the Third International ACM Conference on Assistive Technologies (Marina del Rey, California, United States, April 15 - 17, 1998). Assets
'98. ACM Press, New York, NY, 149-156.
Hanson, V. L., Brezin, J., Crayne, S., Keates, S., Kjeldsen, R., Richards, J. T.,
Swart, C., & Trewin, S. (2005). Improving Web accessibility through an enhanced open-source browser. IBM Systems Journal, 44 (3), 573 - 588.
Hanson, V. L., & Richards, J. T. (2004). A Web Accessibility Service: An Update
and Findings. Proceedings of the Sixth International ACM Conference on Assistive Technologies, ASSETS 2004. New York, NY: ACM. Pp 169-176.
Hanson, V. L., Snow-Weaver, A., & Trewin, S. (2006). Software personalization to
meet the needs of older adults. Gerontechnology, 5 (3), 160-169
Muta, H., Ohko, T., & Yoshinaga, H. (2005). An activeX-based accessibility solution for senior citizens. Proceedings of the Center On Disabilities Technology
And Persons With Disabilities Conference 2005. Available at
http://www.csun.edu/cod/conf/2005/proceedings/2227.htm
Roberts, S. (1999) Exploring Microsoft Internet Explorer 5. Microsoft Press: Redmond, WA.
Richards, J. T & Hanson, V. L. (2004). Web accessibility: A broader view. In Proceedings of the Thirteenth International ACM World Wide Web Conference,
WWW2004. Pp. 72 – 79.
18
Hanson, Richards, and Swart
Sa-nga-ngam, P. & Kurniawan, S. (2007). An investigation of older persons'
browser usage. Proceedings of HCI International - Universal Access in HCI,
Volume 5. Beijing, China. July 22 – 27, 2007. Springer.
Sloan, D. (2006). The Effectiveness of the Web Accessibility Audit as a Motivational
and Educational Tool in Inclusive Web Design. Ph.D. Thesis, University of
Dundee, Scotland. June, 2006.
Trewin, S. Configuration agents, control and privacy, in Proceedings of CUU'00
(Arlington, VA, November, 2000), ACM Press, 9-16.
Zajicek, M., Powell, C., and Reeves, C. (1998). A Web navigation tool for the blind.
In Proceedings of the Third international ACM Conference on Assistive Technologies (Marina del Rey, California, United States, April 15 - 17, 1998). Assets
'98. ACM Press, New York, NY, 204-206.
Browser Augmentation
Index
ActiveX, 4, 7
add-ons, 1, 3, 7, 10
Band, 4
BHO, 4, 5, 11
Browser extensions, 1–15
DOM, 5, 8, 11, 12, 13
Linux, 8, 9
proxy, 15
Style Sheets, 3, 8, 10
Talking browsers, 1
Transcoding, 1, 15
User Agent Accessibility Guidelines, 2, 15
WCAG, 2, 3
XPCOM, 8
XUL, 8
19
Download