Copyright © 2021-2022 W3C® (MIT, ERCIM, Keio, Beihang). W3C liability, trademark and permissive document license rules apply.
This specification provides web content authors a standard approach to support web users who are persons with various cognitive and learning disabilities, including users who require:
This WAI-Adapt: Help and Support Module is a component of the WAI-Adapt series introduced in the WAI-Adapt Explainer document [adapt].
This section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/.
This document was published by the Accessible Platform Architectures Working Group as a Working Draft using the Recommendation track. The name of the Task Force is changed from Personalization to WAI-Adapt, and the names of all documents will be renamed accordingly. The purpose of this publication is to change the name of the document. For details, please refer to the Resolution and Discussions of the WAI-Adapt Task Force.
To comment, file an issue in the W3C WAI-Adapt GitHub repository. If this is not feasible, send email to public-adapt@w3.org (archives). Comments are requested by 10 July 2022.
Publication as a Working Draft does not imply endorsement by W3C and its Members.
This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
This document is governed by the 2 November 2021 W3C Process Document.
This section is non-normative.
This document lists examples of the personalized help and support properties, this is an extension of WAI-Adapt Explainer, including the properties of literal
, numberfree
, easylang
, alternative
, explain
, feedback
, moreinfo
, extrahelp
, helptype
.
WAI-Adapt defines a set of properties and values to annotate content. The specific mechanism to apply these properties to content and semantics has not been decided. Several approaches are under consideration and future drafts will show progress. To help understand the proposed properties, this document provides many examples of WAI-Adapt applied to content, which show attributes beginning with the prefix "data-". This prefix has not been decided on as the definitive approach, but is used as a way to illustrate the examples.
WAI-Adapt: Help and Support Module is the second part of the WAI-Adapt technical specification, which provides WAI-Adapt and vocabularies that can be used to mark-up web content with additional semantic information, enabling user agents to augment or adapt content to various user-scenarios based on the user’s personalization settings or preferences. User agents use these semantics to augment or provide alternative content tailored to the user’s specific needs — for example, a user who has dyscalculia will have difficulty understanding numbers and will have a hard time interacting with websites that use numbers to convey information. Therefore, critical numeric information must be provided in an alternative format that the user can understand.
All the vocabulary in WAI-Adapt: Help and Support Module is constructed of properties and their values. Please see our WAI-Adapt Explainer.
The vocabulary implementations included in this document are available at our implementations wiki page.
Properties are the main units of WAI-Adapt types supported by the vocabulary. A given property supports a specific type of WAI-Adapt. That property would only be used once on a given piece of content, but multiple different properties could be used on the same piece of content to address different needs.
Values provide the specific personalization information for the property. The possible values for each property are elaborated in the definition of the property in the modules. Some properties require the value to come from a predefined list of possible values, others can accept arbitrary strings, and some may accept multiple values. The attribute value may be one of the following types:
Note that the attributes and values in this specification do not overide the semantics exposed in the accessibility tree, but rather augment them. In the case of conflict between an element's semantics and the attribute values, validation algorithms should issue a warning but not an error.
The Requirements for WAI-Adapt describes use cases and requirements. This module provides properties to fulfill those requirements related to adapting content.
This document uses a number of specific terms related to various cognitive disabilities and related user-needs. Those terms have been defined by the Cognitive and Learning Disabilities Accessibility Task Force. See the COGA Glossary for specific definitions.
The following are property terms used to describe alternative or supportive content that may be useful for people with disabilities. The current list focuses on cognitive disabilities, hover we intended to merge the vocabularies for other disabilities in the next version.
Overview of supported values:
Note that there is no default value.
Value | Description |
---|---|
easy-lang-chunks | Breaks content up into smaller sections with a single topic per section. |
easy-lang-all | Provides an alternative version or rewrites the default content for easier comprehension. This may include:
|
less-options | Provide fewer choices by combining related choices together. |
literal-image | provide the literal translation of existing casual language or idioms. |
image-supplementary | symbol or illustration that is typically shown with alt="" extra illustration that will not distract most people such as at the start of a paragraph or option disability centric illustrations that can disturb other people and may be mid-sentence. |
realistic-image | provides a realistic version of a stylized or cartoonish (not real) image.The opposite of symbolic. |
simplified-lang | Provides, a version of the content that is easier to read and understand. Includes easylang and lessOptions |
easy-lang-small-sentences | provides a version of the content with shorter sentences and simple language. |
symbolic | provides an alternative, symbolic representation of an image, for example a picture rather than a photograph.The opposite of realistic. |
vocab1000 | Terms are limited to a core vocabulary of up to 1000 words - unless terms are defined using easy language |
vocab2000 | Terms are limited to a core vocabulary of upto 2000 words- unless terms are defined using easy language |
vocab500 | Terms are limited to a core vocabulary of upto 500 words- unless terms are defined using easy language |
white-space | add additional whitespace between characters, words, and rows. |
interoprable-symbols | Interoperable symbol sets are supported. |
interoprable-controls | Interoperable controls and regions are supported. |
user-tested | Core tasks, including submitting all forms, contacting help and feedback, have been successfully tested with people with memory, language, and numeracy impairments. |
understandable-design | Follows the design for understandable design such as theme 1 in https://docs.google.com/document/d/1WcfVALVq8PS9CLXUuAfV9Op0wXvI2yJYedj5jO23GTk/edit#. Must included: Must include: making each section of a content clear,using hierarchal grouping, consistent back functionality, and consistently visually clear controls. |
human-focus | Follows the design for helping people keep focus such as theme 3 in https://docs.google.com/document/d/1WcfVALVq8PS9CLXUuAfV9Op0wXvI2yJYedj5jO23GTk/edit# Must include that:
|
useable-authentication | Follows the design for authetification such as theme 4 in https://docs.google.com/document/d/1WcfVALVq8PS9CLXUuAfV9Op0wXvI2yJYedj5jO23GTk/edit#. Must included that Logging in does not rely on good memory or other cognitive skills. |
useable-menus | Follows the design for authentication such as theme 4 in https://docs.google.com/document/d/1WcfVALVq8PS9CLXUuAfV9Op0wXvI2yJYedj5jO23GTk/edit#. Must support the ability that voice menus can be avoided in voice interfaces (alternative mechanism), and clear hierarchical menus and search is available in visual interfaces. |
support-API | Browser extensions and APIs are supported |
help-and-support | Follows the design for understandable design such as theme 5 in https://docs.googlecom/document/d/1WcfVALVq8PS9CLXUuAfV9Op0wXvI2yJYedj5jO23GTk/edit#. Must include that Content and information is provided that helps users understand complex information, long documents, numerical information, relative and cardinal directions (North, South, East, and West), forms and non-standard controls. Where an understanding of mathematics is not a primary requirement for using this content, reinforce numbers with non-numerical values |
reminders-and-steps | Module 4 is supported |
no-data-loss | Forms do not timeout or data is not lost if the site times out for at least one week. Or provides information about all the information you might need and the time out. |
Value | Description |
---|---|
automated-step | Provides an alternative step by step sequence for completing a task or procedure. |
automated-bot | Provides an automated conversational help. Typically designed to look like human help. |
dictionary | Provides a definition of the term or topic. May redirect to another URI or provide the information in-line, via a popup, or other method. |
faqs | Redirects to a FAQ page with the related topic in view. |
glossary | Provides a URI to a glossary page with the related topic in view. |
helpform | Used with forms when the user may need more or simplified information about the type of information being requested. Provides access/reference to a modified form with more information about each requested item. |
humanhelp | Provides the user with access to human help. This may be through a live chat, providing a phone number to call for human assistance, or other mechanism to reach a person for direct assistance. |
morehelp | Provides a more detailed explanation about the current topic or process. |
moreinfo | Provides additional levels of detail. |
simplified | Propose this should be easylang rather than simplified. Provides, a version of the content that is easier to read and understand. |
thesaurus | Provides a list of synonyms for the current term. May redirect to another uri or provide a list of synonyms in-line, via a popup, or other method. |
tooltips | offers an option of adding tooltips to provide morehelp with more detailed information about the current topic or process. |
topic-search | provides a uri for the user to perform a search on the current topic with the suggested search term included. |
explain | Provides a more detailed description of a process or term. |
extra-help | Additional information about the current action or process in one or more formats. |
hide-timer | Provides a mechanism to hide the countdown clock in timed situations. For example, a timed exam. |
status | Immediately provides and identifies information about an action that has occurred. |
trigger-warning | Provides a label for content that may cause traumatic response. |
useable-feedback | Follows the design for understandable design such as theme 6 in https://docs.googlecom/document/d/1WcfVALVq8PS9CLXUuAfV9Op0wXvI2yJYedj5jO23GTk/edit#. Must include tat Feedback is usable by each core useability group. |
Characteristic | Value |
---|---|
Related Concepts: | SVG [SVG2] and DOM [DOM4] active |
Used in Roles: | All elements of the base markup |
Inherits into Roles: | landmarks and regions in Divs and sections, alternative (in headers) some cases alt text |
Value: | token list |
The Working Group is currently exploring different methods of implementing help and support in the context of the Personalization effort. The following examples are for illustration only, to assist in visualizing how this may work. The examples illustrate "large" amounts of alternative content, contained inline but hidden from traditional views. This content would be exposed to the end user on demand. For smaller pieces of content, additional information and support can be provided inline within the relative context of the content.
Currently all examples are implemented through attribute/value pairs. This does not imply that attribute/value pairs are the only implementation strategy. The Working Group plans to add additional examples using other mechanisms as previously indicated.
Would be used on an alternative content as an alternative to more detailed or difficult to understand content. alternative
can be used on a span, div, link or image that servers as alternative content to it's direct parent element.
This data model may be too complex, so this property could undergo substantial changes.
Supported values:
Note that there is no default value.
The below example section show how alternative
used when coding.
<div>
<span data-alternative="easylang numberfree vocab1000" class="hidden">
most people prefer simple text
</span>
In studies it was found that only 30% of users prefer long convoluted text
with obtuse words and lots of numbers,
with 56% claiming there preferred the simplified text,
with the remainder unsure or stated it depends on the context.
</div>
Characteristic | Value |
---|---|
Related Concepts: | SVG [SVG2] and DOM [DOM4] active |
Used in Roles: | All elements of the base markup |
Inherits into Roles: | Placeholder |
Value: | token list |
Would be used on additional content to indicate the type of extra help provided. helptype
can be used on a span, div, link or image that provides or redirects the user to additional help information.
Overview of supported values:
Note that there is no default value.
The below example section show how helptype
used when coding.
<button type="button" data-extrahelp="uri2 uri3" >undo</button>
URI 2 may read:
<div id="uri2" data-helptype="morehelp" data-hidden="true">
pressing the undo button will erase all your work on this page.
Use this button with care.
If you press it by mistake, press control and y at the same time
and your answers will come back.
</div>
<a href="functiongethelp()" data-helptype="humanhelp" data-hidden="true">
I want a person to help me</a>
<div id="uri3" data-extrahelp="glossary" data-hidden="true">
Characteristic | Value |
---|---|
Related Concepts: | SVG [SVG2] and DOM [DOM4] active |
Used in Roles: | All elements of the base markup |
Inherits into Roles: | Placeholder |
Value: | token |
For small inline support and changes, attributes may be used.
literal
provides alternative text for people who prefer content that does not use non literal text, such as metaphors.
A personalization agent may replace the content with the literal alternative, or it may put the literal alternative in a tooltip.
User agents may also render non-literal text in a different way so that users will be able to identify non literal content. They can then use a mouse over or other technique to receive the alternative.
A user agent must be able to replace the non literal content with the literal alternative without loss of meaning.
Supported value: String text
Note that there is no default value.
The below example section show how literal
used when coding.
It is <span data-literal="raining hard">raining cats and dogs</span>
Characteristic | Value |
---|---|
Related Concepts: | Alt text |
Used in Roles: | All elements of the base markup |
Inherits into Roles: | Placeholder |
Value: | string text |
numberfree
provides alternative text for people who prefer content that does not use numerical concepts.
A personalization agent may replace the content with the number free alternative, or it may put the number free alternative in a tooltip or sidebar. The content must still be understandable when a user agent replaces the original content with the number free alternative.
Supported value: String
Note that there is no default value.
The below example section show how numberfree
used when coding.
<span data-numberfree="almost all">9 out of 10 </span>
<span data-numberfree="hat and coat weather">The weather is 9 degrees</span>
Characteristic | Value |
---|---|
Related Concepts: | Alt text |
Used in Roles: | All elements of the base markup |
Inherits into Roles: | Placeholder |
Value: | string |
easylang
provides an alternative text of the content that is easier to read and understand. Note that this only works on small sections of text as the easylang attribute
does not support full HTML, such as lists and tables.
A personalization agent (3rd-party tool or browser extension) may replace the content with the simpler alternative, or it may put the alternative in a tooltip or help panel.
User agents may also render hard text in a different way so that users will be able to identify text that has an alternative provided.
The content must still be understandable when a user agent replaces the original content with the simpler alternative.
Supported values: String text
Where easylang
should use as simple well-known words as possible, and active voicing, literal text, small simple sentences. Acronyms and abbreviations should be avoided, unless they are the common way to refer to an item.
The below example section show how easylang
used when coding.
<span data-easylang="some text that is easy to read"> some convoluted obtuse text</span>
Characteristic | Value |
---|---|
Related Concepts: | Alt text |
Used in Roles: | All elements of the base markup |
Inherits into Roles: | Placeholder |
Value: | string text |
This attribute provides any information that helps the user anticipate the functionality, such as letting the user know what behavior will trigger an event. This is most important if the mechanism is not standard.
User experience: This help can be rendered as a tool tip, help link or read when the control or link is read. Most users will not want this text rendered or spoken, but other users however will need it to understand the behavior of the element.
Note that there is no default value.
These values will change when the email is sent.
The example section below shows how explain
used when coding.
data-explain="press enter to send the email"
Characteristic | Value |
---|---|
Related Concepts: | SVG [SVG2] and DOM [DOM4] active |
Used in Roles: | All elements of the base markup |
Inherits into Roles: | Placeholder |
Value: | string text |
This attribute provides immediate feedback that can be shown or spoken when any event is triggered on a control.
User experience: This can be rendered as text at the top of the page and read immediately. Most users will not want this text rendered and spoken. Other users however will need it to know what has just happened.
The example section below shows how feedback
might be used when coding.
data-feedback="your email on %topic% was sent"
Characteristic | Value |
---|---|
Related Concepts: | SVG [SVG2] and DOM [DOM4] active |
Used in Roles: | All elements of the base markup |
Inherits into Roles: | Placeholder |
Value: | string text |
moreinfo
provides users access to additional information about the current content in one of several formats.
A personalization agent may add additional explanatory text or provide an action for the user to take to obtain more detailed information about the content.
Supported values: URI
Note that there is no default value.
The example section below shows how moreinfo
would be used when coding.
N/A - Example needed.
Characteristic | Value |
---|---|
Related Concepts: | SVG [SVG2] and DOM [DOM4] active |
Used in Roles: | All elements of the base markup |
Inherits into Roles: | Placeholder |
Value: | URI |
extrahelp
provides users access to additional information about the current action or process in one or more formats.
A personalization agent may add additional explanatory text or provide an action for the user to take to obtain more detailed information or assistance in completing a task
Supported values: URI
Note that there is no default value.
The example section below shows how extrahelp
would be used when coding.
N/A - Example Needed
Characteristic | Value |
---|---|
Related Concepts: | SVG [SVG2] and DOM [DOM4] active |
Used in Roles: | All elements of the base markup |
Inherits into Roles: | Placeholder |
Value: | URI |
This specification adds context information about content to the document, and should not affect security.
Although this specification does not expose personal preferences and personal information, third party user agents or proxy server(s) acting upon our semantic information may need to store personal preferences on how to present content to a specific user. It is recommended that any user agent or proxy server implements best practices to protect all personal preferences and personal information.
Any user agent with user settings are recommended to follow best practices to keep user information secure.
This section is non-normative.
The following people contributed to the development of this document.
This publication has been funded in part with U.S. Federal funds from the Health and Human Services, National Institute on Disability, Independent Living, and Rehabilitation Research (NIDILRR) under contract number HHSP23301500054C. The content of this publication does not necessarily reflect the views or policies of the U.S. Department of Health and Human Services, nor does mention of trade names, commercial products, or organizations imply endorsement by the U.S. Government. Some of the work on this project has also received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No.780529 and 643399.