WAI-Adapt: Tools Module

W3C Working Draft

More details about this document
This version:
https://www.w3.org/TR/2022/WD-adapt-tools-20220609/
Latest published version:
https://www.w3.org/TR/adapt-tools/
Latest editor's draft:
https://w3c.github.io/adapt/content/
History:
https://www.w3.org/standards/history/adapt-tools
Commit history
Editors:
(Benetech)
(Invited Expert)
(W3C)
(W3C)
Richard Schwerdtfeger (Knowbility) (Editor until October 2017)
Feedback:
GitHub w3c/adapt (pull requests, new issue, open issues)

Abstract

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:

The technology described in this specification is intended to be used to programmatically transform the appearance of typical web content including form controls, icons, and other user interface elements into a rendering more familiar and comprehensible to an individual user. Use cases and relevant vocabulary terms are defined which allow user agents to augment or adapt content to better fit a particular user's particular needs. This helps users with varying needs to understand web content more readily, by simplifying the web interaction, or by avoiding forcing the user to grapple with unfamiliar representations they are ill equipped to comprehend.

This WAI-Adapt: Tools Module is a component of the WAI-Adapt series introduced in the WAI-Adapt Explainer document [adapt].

Status of This Document

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.

1. Introduction

This section is non-normative.

1.1 Background

This specification module enables authors to add semantic information about content at the element level, in order to indicate the priority level of a message for the individual user, or programmatically enumerate tasks that the user is required to complete, so that users who have memory issues can keep track of the steps previously completed. It is anticipated that multiple screen renderings (transformations) will be supported in order to meet the differing needs of different users. Final renderings — generated via helper apps or 3rd-party tools — will be ultimately defined by the user's configuration settings.

This document lists examples of the personalized tools properties, an extension of WAI-Adapt Explainer, including the properties of messageimportance, messagefrom, messagecontext, messagetime, and stepindicator.

Editor's note

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.

1.2 WAI-Adapt: Tools Module

WAI-Adapt: Tools Module is the third and final part of the WAI-Adapt technical specification, which provides WAI-Adapt semantics 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. The Tools Module enhances web content by providing additional information about message importance (for filtering), and tracking multi-step activities. User agents can use these semantics to augment or adapt content to the user’s scenario — for example allowing for the prioritization or filtering of on-screen messages. This helps users with varying needs to filter the content by providing support for a way to manage unnecessary distractions.

1.3 Vocabulary Structure and Implementations

All the vocabulary in WAI-Adapt: Content 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.

1.3.1 Properties

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.

1.3.2 Values

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:

ID reference
Reference to the ID of another element in the same document
ID reference list
A list of one or more ID references.
integer
A numerical value without a fractional component.
number
Any real numerical value.
string
Unconstrained value type.
token
One of a limited set of allowed values.
token list
A list of one or more tokens.
URI
A Uniform Resource Identifier as defined by RFC 3986 [RFC3986] It may reference a separate document, or a content fragment identifier in a separate document, or a content fragment identifier within the same document.

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.

Editor's note
Since implementations have not yet been finalized, any examples in this document are illustrative only, and are provided to help in understanding the concept. All examples will be updated once implementation examples are finalized.

1.4 Use Cases and Requirements

The Requirements for WAI-Adapt describes use cases and requirements. This module provides properties to fulfill requirements related to user support tools.

2. Terms

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.

3. Vocabulary

3.1 All the Step Indicator Properties

3.1.1 Step Indicator Usage

3.1.1.1 Description

The stepindicator defined values should be used whenever there is a sequence of tasks that the user is required to complete, so that users who have memory issues can keep track of the steps previously completed.



Note that there is no default value.

3.1.1.2 Example

Note, the specific mechanism to apply these defined values has not been decided:

Example 1: stepindicator using data-
<div data-stepindicator="book trip">
  <div data-status="complete" aria-label="select flight" data-step="1" data-steplocation="uri" />
  <div data-status="current" aria-label="book hotel" data-step="2" data-steplocation="uri" />
  <div data-status="" aria-label="book car" data-step="3" data-steplocation="uri" />
  <div data-status="" aria-label="purchase trip" data-step="4" steplocation="uri" />
</div>



or the step number can be implied by the DOM



  <div data-stepindicator="book trip">
    <div data-status="complete" aria-labelledby="select flight">
      <a href="uri">Select flight</a>
    </div>
    <div data-status="current" aria-labelledby="book hotel">
      <a href="uri">Book Hotel</a>
    </div>
    <div data-status="" aria-labelledby="book car">
      <a href="uri">Book car</a>
    </div>
    <div data-status="" aria-labelledby="purchase trip">
      <a href="uri">Purchase trip</a>
    </div>
  </div>

3.2 All the message properties

3.2.1 messageimportance

3.2.1.1 Description

The messageimportance attribute is used to indicate the priority level of a message . This can be helpful for a person who gets overwhelmed with messages and filter out low messages and concentrate on critical priority messages.

Supported values: low, medium(Default), critical

3.2.1.2 Example

The specific mechanism to apply these defined values has not been decided

Example 2: messageimportance using data-
<div role="alert" data-messageimportance="medium">
    It is your daughter's birthday tomorrow
</div>
3.2.1.3 Characteristics
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token
3.2.1.4 Values
Value Description
critical To be critical a message needs to be both urgent and content that the user is very likely to consider important. For example, a system may send a message that it is going to reboot in one minute to install updates.
medium (default) Important messages that needs the user's attention at their convenience. For example, a relatively important chat message.
low A message that does not need time sensitive attention. For example, a typical chat message.

3.2.2 messagefrom

3.2.2.1 Description

The messagefrom attribute can be used to help identify who a message a user receives is from.

Supported values: a string value that identifies the sender of the message. If multiple names are used they can be separated by a comma.

Note that there is no default value.

3.2.2.2 Example

The specific mechanism to apply these defined values has not been decided

Example 3: messagefrom using data-
<div role="alert" data-messageimportance="low"
    data-messagefrom="lisa seeman, lseeman">
    I posted a new version on GitHub for you to review
</div>
3.2.2.3 Characteristics

The specific mechanism to apply these defined values has not been decided

Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string text

3.2.3 messagecontext

3.2.3.1 Description

The messagecontext attribute can help clarify where a message is coming from. Knowing who the message is from as well as in which context the message was written are both importent in understanding the meaning of the message received.

Supported values: a string value that identifies the location that makes this message relevant. Typical values are "home" and "work". If multiple locations are relevant they can be separated by a coma.

Note that there is no default value.

3.2.3.2 Example

The specific mechanism to apply these defined values has not been decided

Example 4: messagecontext using data-
<div role="alert"
    data-messageimportance="low"
    data-messagefrom="lisa seeman, lseeman"
    data-messagecontext="work">
    I posted a new version on GitHub for you to review
</div>
3.2.3.3 Characteristics
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string text

3.2.4 messagetime

3.2.4.1 Description

The messagetime attribute helps clarify when the message was sent.

Supported values: 24 hour date time format. DD.MM.YEAR.HOUR.MM - DD.MM.YEAR.HOUR.MM where the second date is an optional exclusive expiry date.

Note that there is no default value.

3.2.4.2 messagetime

The specific mechanism to apply these defined values has not been decided

@@1-line description

Example 5: messagetime using data-
    <div role="alert"
        data-messageimportance="medium"
        data-messagefrom="my calender"
        data-messagecontext="work"
        data-messagetime="10.02.2017.00.00-16.02.2017.00.00">
        Renew your driving license this week
    </div>



    <div role="alert"
        data-messageimportance="critical"
        data-messagefrom="my calender"
        data-messagecontext="work"
        data-messagetime="16.02.2017.00.00">
        Renew your driving license ASAP
    </div>
3.2.4.3 Characteristics

The specific mechanism to apply these defined values has not been decided

Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string text

4. Privacy and Security Considerations

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.

A. Acknowledgments

This section is non-normative.

The following people contributed to the development of this document.

A.1 Participants active in the WAI-Adapt TF at the time of publication

A.2 Other WAI-Adapt TF contributors, commenters, and previously active participants

A.3 Enabling funders

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.

B. References

B.1 Informative references

[DOM4]
DOM Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://dom.spec.whatwg.org/
[adapt]
WAI-Adapt Explainer. Lisa Seeman-Horwitz; Charles LaPierre; John Foliot; Michael Cooper; Ruoxi Ran; Richard Schwerdtfeger. W3C. 12 August 2021. W3C Working Draft. URL: https://www.w3.org/TR/adapt/
[SVG2]
Scalable Vector Graphics (SVG) 2. Amelia Bellamy-Royds; Bogdan Brinza; Chris Lilley; Dirk Schulze; David Storey; Eric Willigers. W3C. 4 October 2018. W3C Candidate Recommendation. URL: https://www.w3.org/TR/SVG2/