People have very different needs. There are many people with cognitive and learning disabilities that affect their ability to interact with the web. Some people cannot process numeric information (dyscalculia), but others understand numbers better than words. Some people with severe language disabilities use symbols to represent words; some people need (or want) simplified user-interfaces. One of the main challenges that has not been addressed on the web is transforming content for these varying needs. This specification provides a means for web technologies to address these requirements.

The personalization specification enables authors to add extra semantic information about content to enable personalization for the individual user. This provides extra support and facilitates user agents for people with learning and cognitive disabilities.

Authors add extra semantic information using a collection of new attribute(s) and values, with (in most cases) a fixed token list (taxonomies). This document is an explanation for understanding how to use Personalization properties to personalize an accessible web site.

Introduction

The personalization specification:

Technology holds the promise of being extremely flexible and the design of many systems includes the expectation that users can optimize their interaction experience according to their personal preferences or accessibility needs.

Why We Need Personalization

Personalization will allow assitive technology to:

  1. adapt to and meet the user's needs. Users who have difficulty with established, mainstream patterns can interact with interfaces modified to their preferences and abilities.
  2. modify levels of complexity as people's skills improve or decline over time. For example, extra support may be critical for some people but distracting for others.
  3. provide extra support to users who require:
    • familiar and consistent symbols, iconography, and graphics
    • tooltips or similar on-demand help or clues
    • language they understand
    • fewer or more constrained features
    • distinction between native and third-party content
    • custom keyboard short cuts

To achieve this, we need standardized terms and supportive syntax. These can be linked to associated symbols, terms, translations and explanations. This allows modifications based on an individual's personal preferences.

Example of sending an email

An author programmatically identifies that a button sends an email. Based on user preference settings the interface can be modified to:

Use Case Examples

Requirements for Personalization Semantics elaborates many use cases that further contextualize the above summary of user needs. These example use cases form the basis of requirements for this technology. Personalization enables developers to create targeted extensions as additional use cases are encountered.

Examples

Easily Distracted / Overwhelmed

Someone who is either easily distracted or can be easily overwhelmed with too much information on a web page needs the ability to simplify the page. They want just the critical information and need anything that is not integral to the understanding and use of the page suppressed.

Example: You want to get the latest weather report for your city and go to the www.weather.com website. Finding the actual weather forecast is actually a little challenging even if you have no disabilities due to all the advertisements above, beside and below the information you actually want, there is also today's top stories, trending news, and social media to ignore. If you are easily overwhelmed or distracted getting the key information about today's weather is a challenge. Having the ability to personalize and strip away all but the key information (i.e. just the weather forecast for my city) is critical for this user.

In this example, the author of this web page marks the <section>, <p>, or <div> that contains the actual weather report and any associated tools to manipulate the weather report (i.e. city search, hourly vs. 5 day forecast, etc.) as data-simplification = "critical", and marks the other content as "medium" (default) or "low".

For websites which rely on advertising revenue, it may be difficult to completely suppress advertisements. We envision that this attribute could also facilitate relocating the most critical sections of a website above anything that is a lower priority. (i.e. Content re-ordering)

Difficulty Understanding Numbers

Someone who has dyscalculia, difficulty understanding numbers, will have a hard time interacting with websites that use numbers to convey information. Therefore, this numeric information must be provided in an alternative format that the user can understand.

Example: The user wants to get the latest weather report for their city and goes to a weather website. For today’s forecast, it shows a high of 95℉ and a low of 40℉. This representation is not helpful for this particular user. Presenting this numeric information as a symbol or text would benefit the user. For example, instead of 95℉, a picture of someone wearing shorts and a tee-shirt with the sun above or simply a text alternative of “Very warm”. And, instead of 40℉ a picture of someone wearing a jacket with pants, or a text alternative of “Very cold”. For something like the humidity index of 90%, a text alternative of “muggy”.

In this example, the author would mark up the numbers using data-numberfree. The default would show the numeric value. Those needing an alternative representation for numbers, would get an associated image or description/values as simplified text instead.

It is important to note that people with dyscalculia are often very good with words, so long text can be better than short numbers.

Mild-Moderate Language Impairment / Learning Disability

Those who have a moderate Language Impairment / Learning Disability may have a limited vocabulary. They will only know terms that are in the core vocabulary they have learned. They may also use symbols to represent words and concepts.

Example: The user may know the word _name_ or _last name_ but have not learned the term "family name". For some users, learning new terms is very slow, requiring hours of work. For these users, reading may also be very slow so finding the right information can be a barrier. The ability to personalize a web page and present symbols instead helps users to easily understand the content being provided

Note that some people with language disabilities are good at numbers. They will want a long string of text replaced with a short number: <span data-easylang="90% of the time this happens"> normally this is the expected outcome</span>. This is the opposite of the numberfree example.

Additionally, because reading content for some users is extremely time-consuming, they also want less content and features on the web page.

Severe Language Impairment

Some users with a severe speech and/or physical impairment may communicate using symbols, rather than written text, as part of an Augmentative and Alternative Communication (AAC) system. The use of symbols to represent words is their primary means of communication when both consuming and producing information. Symbol users face a wide variety of barriers to accessing web content, but one of the main challenges is a lack of standard inter-operability or a mechanism for translating the same concept into different symbol sets.

User-stories include:

  • An assisted living home authors adult education courses and life-skills content, for example, how to make dinner using a microwave. Within their core user-base, users are accustomed to different symbol-sets. The authors want to create content for all users across various symbol sets.
  • A large banking site wants people to be as autonomous as possible while using their services. They provide augmented symbol references onto their core services. They need a mechanism to programmatically support multiple symbol-sets witin the code.
  • People who know different symbol-sets wish to talk to each other. A government agency creating information sheets about human rights and patient rights are seeking feedback from impacted users. They add symbols from a common symbol-set to support a majority of different users. The agency would prefer to use a common symbol reference to support people who use or require different symbols. This allows all symbol-set users to both read and edit the content.

data-symbol: Using the data-symbol attribute, an author programmatically identifies the function of the button that sends an email. Based on user preference settings, a browser helper application or stand-alone tool renders that concept using an appropriate symbol, alternative term, and/or furnish an additional tool-tip that is understandable by the individual user. Using the Bliss Symbolics set's unique reference numbers as our 'taxonomy', other symbol sets can map their equivalent symbols against the Bliss set.

<label for="bar" data-symbol="14885">Your Principle Residence</label> <input type="textarea" id="bar" name="address" data-purpose="street-address">

Where the symbol value 14855 maps back to "Home".

Proof of Concept Symbol Example

Original screen shot, no symbols

Here we have the same page loaded, but the user agent has removed content and added symbols screen shot with less content and symbols

Here we have the same page loaded, but the user agent has removed content and added different symbols that this user is more familiar with: screen shot with different symbols (bliss)

Note that users learn a specific symbol vocabulary. However, the various vocabularies are mutually unintelligible. Personalization offers a mechanism to translate between symbol sets to allow people to communicate with one another where it was previously not possible.

Working Memory and Short-term Memory Impairment

Users may have differences in both working and short-term memory. For some users, the duration of working memory may be shorter than the average of between 10-15 seconds.

Example: Many processes consist of a sequence of separate steps or actions which must be performed by a user to complete a process or workflow. Users need to remember completed tasks in order to identify their location in a process. In addition, a user must be able to navigate to completed tasks to make modifications or corrections.

A step indicator allows an author to define steps within a process or represent an entire user path outside of the context of a defined process. This includes turning steps between defined processes into breadcrumbs or linked steps that identify completed tasks. This allows the user to navigate back to completed steps and identify a user's current location in a path.

More information on persona and user needs can be found in Making content usable for people with cognitive and learning disabilities.

Out of Scope

While the intention of this work is to introduce a new set of attributes to support Personalization, the following work items are out of scope:

We encourage a the development of these items and a list of implementations can be found on our wiki.

Modules

This specification has been divided into modules.

Each module has use cases and vocabularies:

Vocabulary Structure

Personalization Semantics is made of a vocabulary of properties and their values. This generic structure makes it possible to apply Personalization Semantics in a variety of contexts by adapting how the vocabulary is instantiated. The Vocabulary Implementations section below describes current ways to use the vocabulary.

Properties

Properties are the main units of personalization types supported by the vocabulary. A given property supports a specific type of personalization. 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

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 value may be one of the following types:

true/false
Value representing either true or false, with a default "false" value.
true/false/undefined
Value representing true or false, with a default "undefined" value indicating the state or property is not relevant.
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.

Vocabulary Implementations

Current Usage

At the present stage of development, the Personalization Semantics vocabulary can be used in HTML content using data- attributes [[html5]]. Attributes in this form can be used in valid HTML to implement features recognized by browser extensions or other special processors. Personalization Semantics is using this approach to gain early implementation experience of the features in a way that is simple and likely to be accepted within the web ecosystem as an interim approach.

This publication of the personalization semantics provides several name value pairs. These include but are not limted to:

Other properties exist or will be developed as the modules mature. See the discussion Prototypes with data dash.

The personalization specification currently defines and relies on multiple entity attributes constructed according to the requirements of Sec. 3.2.6.6 of the HTML Specification, Embedding custom non visible data with the data-* attributes and by express request of W3C's Technical Advisory Group (TAG). The HTML data- attribute syntax is not intended to be used for long-term wide-scale features. The task force is using this approach at the moment to gain implementation experience and demonstrate the usefulness of Personalization Semantics in practice. Implementers are cautioned that the "data-" prefix will be removed or replaced for some or all attribute values in succeeding iterations of this specification following additional consideration in W3C and the WHAT-WG.

Technology Comparison Summary

The task force reviewed various vocabulary options before deciding upon the use of the data- HTML attribute syntax. The list of technologies included:

The details of our research and discussion is documented on the Comparison of ways to use vocabulary in content and Prototypes with data dash pages in our Wiki.

We presented some of these options at the TPAC 2018 Personalization Plenary Day presentation and provided a working example using the data- attribute to add personalization features. The data- solution was recommended by representatives of several working groups attending our presentation and discussions. See the Vocabulary Implementations section in the Explainer document for further details on the use of data- attributes.

Stakeholders

This document is useful for:

For early implementations of content we suggest including a link to an extension an implementation that can maximize the benefit for users.

Acknowledgements placeholder