Requirements for Personalization Semantics

W3C First Public Working Draft

This version:
https://www.w3.org/TR/2020/WD-personalization-semantics-requirements-1.0-20200130/
Latest published version:
https://www.w3.org/TR/personalization-semantics-requirements-1.0/
Latest editor's draft:
https://w3c.github.io/personalization-semantics/requirements/
Editors:
(Benetech)
(W3C)
(W3C)

Abstract

This is a requirements document for Personalization Semantics, this document contains use cases, requirements and user stories for personalization semantics.

Status of This Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. 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 First Public Working Draft. This document contains use cases, requirements and user stories for personalization semantics.

To comment, file an issue in the W3C personalization semantics GitHub repository. If this is not feasible, send email to public-personalization-tf@w3.org (archives). Comments are requested by 10 March 2020. In-progress updates to the document may be viewed in the publicly visible editors' draft.

Publication as a First Public Working Draft does not imply endorsement by the W3C Membership. 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. The group does not expect this document to become a W3C Recommendation. 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 1 March 2019 W3C Process Document.

1. Introduction

1.1 Adding Context

A web content author creates a button with a role="send" then, without any additional work by the author the web content automatically:

1.2 General Context

A female user with a cognitive disability may need to select "Less options", while shopping on a website to eliminate options that are not relevant to a her shopping needs. In this case it may be appropriate to demote these options to display below the scroll or placed under a "More option" button.

1.3 Interoperable Symbols

Mapping an AAC users' symbols to the same concepts enables the user agent to load the appropriate symbols enabling the user to understand and access content on the web and in other applications. In addition, AAC users, and those working with AAC users will be able to load AAC user symbols into these applications enabling access to content that has been created by different providers.

Editor's note

This isn't worded in use case language, so needs to be reformulated.

1.4 Non-Numerical Comprehension

A suggested user experience would be: Numerical concepts could be rendered by the user agent slightly different so that the user knows a number free explanation is available. The user can then focus on the content and a tooltip or other disclosure mechanism would give the number free value.

Editor's note

This isn't worded in use case language, so needs to be reformulated.

1.5 Alternate Language Complexity

For example, you may wish to provide a simplified summary of legal document, but still have a longer version for other users.

Editor's note

This isn't worded in use case language, so needs to be reformulated.

1.6 Non-literal Text and Images

Non-literal content could be rendered by the user agent with an indication that signifies to the user that this content should not be taken literally and that a literal explanation is available. The user can then place focus on the content and a tooltip or other disclosure mechanism would give the literal value.

Editor's note

This isn't worded in use case language, so needs to be reformulated.

1.7 More Help

Some users may need additional information or specifically additional help information.

Editor's note

This isn't worded in use case language, so needs to be reformulated.

1.8 Explain and Feedback

Some users need additional feedback about events on the web page.

Editor's note

This isn't worded in use case language, so needs to be reformulated.

1.9 Indication of Sequence in Breadcrumbs

A hyperlinked, sequential breadcrumb list displays in the header, allowing the user agent to build a sequential indicator that displays a link to each page in the order it was visited by the user.

Editor's note

I believe an important feature is that this mechanism can cross defined tasks and give a more holistic version of the user flow. Typically in a defined sequence of tasks an author will have provided the nessessary afforardance, location in the path, navigation through the path, etc., in the UI by design.

1.10 Reminders and Messages

Users can disable push notifications and messages on applications such as Skype and Facebook across different devices, however, they may forget to re-enable these notifications and messages. A user's contacts can be organized by importance or by groups. For example, the CEO of the company a user works for and a user's child care giver could both be set to critical. A user's contacts may also be grouped. Family members may be in one group, important colleagues may be in a second group, and friends in a third group.

Privacy Implications:This feature could in theory be implemented pre-authentication. Depending on the implementation, this would expose a users contats to the client in clear text.

Existing Technologies: Would Web push notification with customization by the user satisfy the requirement here as opposed to introducing new semantics?

Reference: https://developers.google.com/web/fundamentals/codelabs/push-notifications/

Example User Experience: Question for the group. How would data be shared, if at all, between applications containing, for example, contacts and the proposed mechanism

Editor's note

This isn't worded in use case language, so needs to be reformulated.

2. Stories

2.1 Summary

2.2 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 to just the critical information and suppress anything that is not integral to the understanding and use of the page.

Example: You want to get the latest weather report for your city and go to the The Weather Channel 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 webpage would mark 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 mark the other content as medium (default) or low.

For websites which rely on Advertisement revenue, this may be difficult to completely suppress but maybe there is a way to move the most critical sections of a website above anything that is a lower priority.

2.3 Difficulty understanding Numbers

Someone who has dyscalculia and therefore has difficulty understanding numbers which means they have a hard time understanding websites that use numbers to convey information. Therefore this numeric information must be provided in an alternative format that the user can understand.

Example: You want to get the latest weather report for your city and go to The Weather Channel website. For today’s forecast, it shows a high of 95°F and a low of 40°F, which is not helpful for this particular user. Allowing this numeric information to be presented instead as an image, symbol, or text would benefit the user (i.e. instead of 95°F, 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°F a picture of someone wearing a jacket with pants, or a text alternative of “Very cold”. Also for something like the humidity index of 90%, there could be a text alternative of “muggy”.

In this example, the author would have the numbers marked up using data-numberfree where the default would show the numeric value but for those needing an alternative representation for numbers would get an associated image or description to be presented 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.

2.4 Mild-Moderate Language Impairment / Learning Disability

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

So, they may know the word name or last name but have not learned the term "family name"e;. learning new terms is very slow, requiring hours of work. Reading is also very slow so finding the right information can be a barrier. Symbols help people get to the section they need faster.

Solutions:

  1. The ability to personalize a web page and present symbols instead can help users to easily understand the content being provided

    I.E: Marking up the Help button so the user agent can render a familiar term and present the symbol for help. i.e. <a data-action="help">support /</a> may be rendered as / ? help (possibly as a tool tip)

  2. Allow the author to add a simple language equivalent to complex but important text such as <h1 data-easylang="form to ask for money if you have a disability or if you are ill"> Disability claims under CD 356 / US `. In this example, the user agent replaces the complex text with the simple text or puts the simple text in a popup message if the easy text needs to be longer.

    Note some people with language disabilities are good at numbers, so there could be times you want to replace a long string of text with a short number <span data-easylang=">90% of the time this happens"> normally this is expected </span> Note this is the opposite of the numberfree example.

  3. Because reading is so slow some users may also want less content and features on the web page, as per the above use cases.

2.5 Severe Language Impairment

Those who have a severe speech and physical impairment can use symbols to represent words is their primary means of communication for both consuming and producing information. Some users communicate through the use of symbols, rather than written text, as part of an Augmentative and Alternative Communication (AAC) system. Symbol users face a wide variety of barriers to accessing web content, but one of the main challenges is a lack of standard interoperability or a mechanism for translating the same concept in different symbol sets.

Examples include:

It should be noted that the users who depend primarily on symbols to obtain information may struggle the most with incorrect translations because they have severe language disabilities when trying to understand what is meant by the use of an incorrect symbol which makes it unachievable for many users. This rules out relying on machine learning until machine learning output is reliable and stops making errors.

The task force understands that making a scalable solution may, therefore, make a solution not useable for the earlier use cases. We may need a multi-phase solution so that the earlier use cases are supported sooner.

2.6 Solutions for Symbol

Map symbol libraries to common concepts, so that symbols can be accurately converted to text in any language and then presented to other users in their preferred symbol library. The ability to personalize a web page by presenting the user's preferred symbols can help symbol users to easily understand the content being provided.

Example: In this example the author would add data-symbol=”name space references for the image” <img data-symbol="http://blisssymbolics.org/refnumber/001" href="mysymb.bmp">

When there is more than one concept, multiple concepts can be referenced by separating them with white space. The order of multiple concepts should be subject predicate object. Both omissions and multiple triples are allowed.

Note that a UNICEF consortium is mapping the different open symbol libraries to a reference symbol (at Blisssymbolics) to enable this. See the implementations page.

2.7 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 which is between 10-15 seconds. For some users, the duration of short-term memory may be shorter than the average which is between 15-30 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 must be able 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.

Solution: data-stepIndicator allows an author to define steps within a process or represent an entire user path outside of the context of a defined process, including 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.

3. Use-Cases

3.1 Simplification - 1

Use case: The user would prefer to see only the critical information and required fields to complete a task.

Original

<div>
    <form action="#" method="post"><br /> 
        <p>Enter your e-mail address to subscribe to our mailing list.</p>
        <br /> 
        <label for="address">Enter email address:</label>
        <input type="text" id="address" name="address"/></p>
        <br />
        <input type="submit" value="Subscribe" />
    </form>
</div>

data-* Attributes

<div>
      <form action="#" method="post"><br /> 
        <p>Note: [*]denotes mandatory field</p>
        <p>Enter your e-mail address to subscribe to our mailing list.</p>
        <br /> 
        <label for="address">Enter email address:</label>
        <input type="text" id="address" name="address" data-purpose="email" 
            data-simplification="critical" 
            aria-required="true"/>[*]
        <br />
        <input type="submit" data-simplification="critical" 
            value="Subscribe" />
        <br /> 
    </form>
</div>

3.2 Simplification - 2

A user changes their personalization settings to simplify the web content that displays based on the importance of various features. In the sample user experience available at https://rawgit.com/ayelet-seeman/coga.personalisation/demo/conactUs.html, the user can select a "More options button or "Less options" button to simplify the web content by hiding or displaying elements that are or of low importance.

3.3 Simplification with required fields

The user would prefer to see only the critical information and required fields to complete a task.

Original - Simplification/Required

<div>
    <button id="1">send</button>
    <button id="2">undo</button>
    <button id="3"">lable</button>
    <button id="4">send later</button>
    <button id="5">mark urgent</button>
</div>

data-* Attributes - Simplification/Required

<div>
    <input type="submit" data-simplification="critical" 
        data-action="send" value="send" />
    <button id="2" data-simplification="high" data-action="undo">undo</button>
    <button id="3" data-simplification="normal">lable</button>
    <button id="4" data-simplification="normal">send later</button>
    <button id="5" data-simplification="normal">mark urgent</button>
</div>

Attributes Only - Simplification/Required

<div>
    <input type="submit" context ="critical send" value="send" />
    <button id="2" context="high undo">undo</button>
    <button id="3" context="normal">lable</button>
    <button id="4" context="normal">send later</button>
    <button id="5" context="normal">mark urgent</button>
</div>

3.4 Content Filtering (inception)

User may have a sensitivity to certain words or topics; based on personal preference, culture or disability which are expressed on a page using text, images or video.

Given one or more strings representing a specified word or category, for example, content marked as explicit, violent, etc., hide or remove that string and associated elements from the DOM.

Consideration: How are we bringing in data sets to support use cases that depend on external data, for example, symbols or simple language vocabularies? Is this through separate JS or is the vision to have that abstracted by the implementation.

Alternative (by lisa) data-triggers = list of words

at the user end the content will be hidden under a warning button if any of the words match a word identified as a tiger in the user preferences

for example data-triggers = "violent rape"

3.5 Two text field Use Cases

3.5.1 Numberfree and Extrahelp

Editor's note

This example proved much harder to create than I expected. I will admit that I am still confused at how to create the examples and am not confident that these are correct. I also intended to have this be an example that needed two types of replacement but when I implemented it, I realized I could split it into two separate substitutions. becky

The user needs content that does not use numbers and needs extra help and information to complete a task.

Original
<div>
    7 out of 10 people order pizza with some kind of meat topping. 
    Select the toppings below in order of preference that you would 
    order on pizza.
</div>
<form>
    sophisticated form to select/rank pizza toppings in order of preference
</form>
3 Attributes
<div>
    <span context="numberfree" easylang="most people">
         7 out of 10 people
    </span> 
        order pizza with some kind of meat topping. 
    <span context="extrahelp" reference="href-to-simplifiedInstructions">
        Select the toppings below in order of preference that you would 
        order on pizza.
    </span>
</div>
data-* Attributes
<div>
  <span data-numberfree="Most people">
     7 out of 10 people
  </span> 
  order pizza with some kind of meat topping. 
  <span data-extrahelp="href-to-simplifiedInstructions">
     Select the toppings below in order of preference that 
     you would order on pizza.
  </span>
</div>

3.5.2 Numberfree and easylang - 1

The user prefers alternative text that does not use numerical concepts as well as content that is easier to read and understand.

Original - 1
<p>
   Comparing the present clock-reported time which is 5 minutes
   after 09:00 AM with what we previously discussed 
   yesterday, and made an agreement about, 
   it seems that I myself may not be exactly on schedule
</p>
data-* Attributes - 1
<div>
    <span easylang="I'm running late">
        Comparing the present clock-reported time which is 
        <span data-numberfree="midmorning">
           5 minutes after 09:00 AM
        </span> 
        with what we previously discussed 
        yesterday, and made an agreement about, it seems that 
        I myself may not be exactly on schedule
    </span>
</div>

3.5.3 Numberfree and easylang - 2

The user prefers alternative text that is easy to read and understand but is good with numbers (eg dyslexic)

Original - 2
<p>
   Comparing the present clock-reported time 
   you many wish to come a bit later than the normal time.
</p>
data-* Attributes -2
<div>
      <span data-easylang="come to the meeting at 9:10">
           Comparing the present clock-reported time you many wish 
           to come a bit later then the normal time
      </span> 
    </div>
Three Attributes -2
<div>
    <span data-easylang="come to the meeting at 9:10">
        Comparing the present clock-reported time 
        you many wish to come a bit later then the normal time
    </span> 
</div>

3.5.4 Numberfree and easylang - 3

The user can understand words well but has dyscalculia and does not understand numbers

Original - 3
<p>
  meeting is starting 10 minutes late
</p>
data-* Attributes -3
<div>
   <span data-easylang="come a bit later than the normal time - enough time for a cup of tea... ">
      meeting is starting 10 minutes late
   </span> 
</div>
Three Attributes -2
<div>
      <span data-easylang="come a bit later then the normal time - enough time for a cup of tea... " context="numbers">
         meeting is starting 10 minuets late
      </span> 
</div>

3.5.5 Three text field Use Cases

3.5.5.1 Feedback, Explain and Easylang

The user needs

  • easy language and
  • a bit more information about how the interface works
  • what just happened - i.e. did they need to click something else, did it work?

In this example search criteria in one part of a page controls the results in anther region which shows the side effects of a drug. Other buttons may show dosage etc. in the results region

Original
<input  
    data-context ="critical" value="refresh" 
    aria-controls="region2" 
/>
data-*
<input  data-simplification="critical"  
    data-feedback="the results now are for ibuprofen side effect" 
    value="refresh" 
    aria-controls="region2" 
    data-easyLang="get the side effects" 
    data-explain="press this button to see the side effects of a drug"  
/>
Three Attributes
Editor's note

I could not do this in three attributes. So I did what I could

<input context="critical" 
   data-feedback="the results now are for ibuprofen side effect" 
   value="refresh" 
   aria-controls="region2" 
   data-easyLang="get the side effects" 
   data-explain="press this button to see the side effects of a drug"  
/>

3.5.6 More than one URI use case

3.5.6.1 symbol and extra help

The user needs

  • symbols
  • extra text
  • help
Original
<div>
  <strong>warning</strong> 
  in the event of a siren go to the designated protected area
</div>
data-*
<div>
  <strong region="warning">warning</strong> 
  <span data-symbol="blissymbolics.org/siren"> in the event of a siren </span>
  <span data-symbol="blissymbolics.org/goto"> go to </span>
  <span data-symbol="blissymbolics.org/shelter" 
    data-extrahelp="mysite/whatisashelter-easylang.html">the designated protected area
  </span>
</div>
Three Attributes
Editor's note

I could not do this in three attributes. So I did what I could

<div> 
  <strong  context="warning">warning</strong> 
  <span reference="blissymbolics.org/siren">in the event of a siren</span>   
  <span reference="blissymbolics.org/goto"> go to </span>
  <span reference="blissymbolics.org/shelter" extrahelp="mysite/whatisashelter-easylang.html">
    the designated protected area
  </span> 
</div>

4. Requirements

4.1 Personalization Features

Editor's note

See feature issues for considerations on requirements for specific features of personalization semantics.

4.1.1 Importance identification

Requirement: There must be a mechanism to identify and differentiate the features included in web content based on its importance (e.g. critical, high, medium, low). The definition of a feature's importance should be defined from the user's perspective as:

  • Critical — used by the majority of users 90% of the time or more.
  • High — used at least 60% of the time or more.
  • Medium — used by 20% of users, 20% of the time.
  • Low — used less then 20%.

Fulfills use cases: Simplification

Relevant properties: simplification

4.1.2 Familiar Terms and Symbols

Terms and symbols used in web content must be familiar to the user because what is familiar to one user may be unrecognizable or strange to someone else requiring the user to learn new symbols. Therefore, the user agent or script should understand the context of links, buttons, and other page elements so that symbols and text displayed in a way each user understands. This can include:

  • Familiar Symbols and graphics that they are familiar with
  • Tooltips
  • Language translation
  • Keyboard shortcuts

In order to display the appropriate content the supported syntax and terms must be standardized using attributes to associate symbols, terms, translations and explanations that are presented in a way that is understandable by various user scenarios.

Fulfills use cases: Adding Context

Relevant properties: action, destination, purpose

4.1.4 Symbol Sets

Create interoperable symbol sets for users with complex communication needs that require the use of Alternative and Augmentative Communication (AAC) systems. AAC systems are designed for people who are non-verbal that often use symbols with or without text. AAC end-users tend to only learn one symbol set and cannot easily communicate with other symbol users in a written format. In addition, they may struggle to understand different symbols that are used in different applications. It's important to note that some symbols may be subject to copyright, which means they cannot be shared across applications. However, there are open symbol sets that can be shared and mapped against concepts, generating representative text. This text can also be translated into different languages as well as used to display a different set of symbols.

Fulfills use case: Interoperable Symbols

Relevant properties: @@concept

4.1.5 Number Free

Not everyone can understand numbers. The numberfree attribute is intended as an alternative text for people who can not understand the main content.

Editor's note

This needs to be made higher-level.

Fulfills use case: Non-Numerical Comprehension

Relevant properties: numberfree

4.1.6 Indicate Alternate Language Complexity of Same Content

Authors may want to provide a simplified version of the page or of a section of a page. These alternative versions may not be identical in content but maintain the intent of the original content.

Editor's note

Needs more specific requirement.

Fulfills use case: Alternate Language Complexity

Relevant properties: alternative, easylang

4.1.7 Indicate Non-Literal Content

Some users cannot understand non-literal text and icons such as metaphors, idioms etc. The literal property is intended to identify text or images as non-literal and allows the author to explain non-literal text and images to users.

Editor's note

Needs more specific requirement.

Fulfills use case: Non-literal Text and Images

Relevant properties: literal

4.1.8 Help Information

We propose additional properties so that an author can indicate the existence of this additional information.

Editor's note

Needs more specific requirement.

Fulfills use case: More Help

Relevant properties: moreinfo, extrahelp, helptype

4.1.9 Provide Feedback

We propose additional properties where the author can provide additional information or explain what just happened.

Editor's note

Needs more specific requirement.

Fulfills use case: Explain and Feedback

Relevant properties: feedback, explain

4.1.10 Step Indicator

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 which is between 10-15 seconds. For some users the duration of short-term memory may be shorter than the average which is between 15-30 seconds.

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 must be able to track 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.

The suggested defined values allow an author to transform information associated with steps within a process or represent the entire user path including steps out of the context of a defined process and steps between defined processes into breadcrumbs or linked steps that identify completed tasks, allow the user to make edits to steps that have been completed and identify a user' current location in a user path.

Editor's note

Needs more clear requirement.

Fulfills use case: Indication of Sequence in Breadcrumbs

Relevant properties: stepindicator, @@step, @@steplocation, @@stepstatus, @@stepnumber

4.1.11 Message Categorization

A mechanism for managing both system level and application level reminders and messages is a useful tool for people with a variety of cognitive disabilities including, memory impairment and users who are sensitive to distractions. We require a group of defined values that give users control over the amount of reminders and messages that are presented along with a mechanism for managing, prioritizing, managing and grouping reminders and messages.

The defined values should allow an alternative solution for users to manage reminders and messages by forming a cross-application and cross-device matrix that manages all reminders and messages. These values are based on a matrix for reminders and messages at the operating system, browser or cloud level.

Editor's note

Needs more clear requirement.

Fulfills use case: Reminders and Messages

Relevant properties: message messageimportance, messagefrom, messagegroup, messagetime

4.2 Vocabulary Structure

Editor's note

See vocabulary structure issues for considerations on requirements for vocabulary structure.

4.3 Host Language Integration

A. Acknowledgments

This section is non-normative.

The following people contributed to the development of this document.

A.1 Participants active in the Personalization TF at the time of publication

A.2 Other Personalization 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.