re: What is a user agent?

Some ideas for glossary gardening. For the user agent and user agent extension definitions, I tried to work in ideas from Greg's email (http://lists.w3.org/Archives/Public/w3c-wai-ua/2013JanMar/0019.html) but some things might have fallen through:

[PROPOSED] *operating system (OS)*: Software that supports a computer's basic functions, such as scheduling tasks, executing applications, and managing hardware and peripherals.
- Note: Many operating systems mediate communication between executing applications and assistive technology via a platform accessibility service.

[UPDATED] *platform*: The software environment(s) within which the authoring tool operates. Platforms provide a consistent operational environment on top of lower level software platforms or hardware. *Non-web-based* platforms include desktop *operating systems* (e.g. Linux, MacOS, Windows, etc.), mobile operating systems (e.g. Android, Blackberry, iOS, Windows Phone, etc.), and cross-OS environments (e.g. Java). *Web-based* platforms are other user agents. User agents may also employ server-based processing, such as web content transformations, text-to-speech production, etc..
- Note 1: A user agent may include functionality hosted on multiple platforms (e.g. a browser running on the desktop may include server-based pre-processing and web-based documentation).
- Note 2: Accessibility guidelines for developers exist for many platforms.

[REMOVE] operating environment --> platform

[EXISTING] *platform accessibility service*: A programmatic interface that is engineered to enhance communication between mainstream software applications and assistive technologies running on a platform (e.g. MSAA, UI Automation, and IAccessible2 for Windows applications, AXAPI for MacOSX applications, Gnome Accessibility Toolkit API for Gnome applications, Java Access for Java applications). On some platforms it may be conventional to enhance communication further via implementing a DOM.

[UPDATE] *user agent*: Software that retrieves, renders and facilitates end-user interaction with Web content. If the software only performs these functions for time-based media, then the software is typically referred to as a *media player*, otherwise, the more general designation *browser* is used. UAAG 2.0 identifies several user agent architectures:
- *Stand-alone*: These user agents run on non-Web platforms (operating systems and cross-OS platforms, such as Java) and perform content retrieval, rendering and end-user interaction facilitation themselves. (e.g., Firefox, IE, Chrome, Opera).
- *Embedded*: These user agents "plug-in" to stand-alone user agents in order to rendering and facilitate end-user interaction for content types (e.g., multimedia), that the stand-alone user agent is not able to. Embedded user agents establish direct connections with the platform (e.g. communication via platform accessibility services).
- *Web-based*: These user agents operate by (a) transforming the web content into a technology that the stand-alone (or embedded) user agent can render and (b) injecting the user agent's own user interface functionality into the content to be rendered.
- *Webview Component*: These user agents are used to package web content into non-web-based applications, especially on mobile platforms. *If the finished application is used to retrieves, renders and facilitates end-user interaction with Web content of the end-users choosing, then the application should be considered a stand-alone user agent. If the finished application only renders a constrained set of content specified by the developer, then the application should not be considered a user agent.* 
Note 1: Any of these user agent architectures may also employ server-based processing, such as web content transformations, text-to-speech production, etc.
Note 2: User agents may also include *authoring tool* features. (see "Relationship to the Authoring Tool Accessibility Guidelines (ATAG) 2.0" http://www.w3.org/WAI/UA/2013/ED-UAAG20-20130108/#intro-atag)

[ADD] User agent extensions (add-ins): Software installed into a user agent that has an extension feature in order to modify the behavior of the user agent. Two common capabilities for user agent extensions are the ability to *modify the content* before the user agent renders it (e.g., to add highlights if certain types of alternative content are present) and to *modify the user agent's own user interface * (e.g. add a headings view).


Cheers,
Jan
---

(MR) JAN RICHARDS
PROJECT MANAGER
INCLUSIVE DESIGN RESEARCH CENTRE (IDRC)
OCAD UNIVERSITY

T 416 977 6000 x3957
F 416 977 9844
E jrichards@ocadu.ca

Received on Monday, 11 February 2013 16:31:56 UTC