Requirements for Personalization Semantics
A web content author creates a button with a role="send" then, without any additional work by the author the web content automatically:
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.
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.
This isn't worded in use case language, so needs to be reformulated.
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.
This isn't worded in use case language, so needs to be reformulated.
For example, you may wish to provide a simplified summary of legal document, but still have a longer version for other users.
This isn't worded in use case language, so needs to be reformulated.
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.
This isn't worded in use case language, so needs to be reformulated.
>Some users may need additional information or specifically additional help information.
This isn't worded in use case language, so needs to be reformulated.
Some users need additional feedback about events on the web page.
This isn't worded in use case language, so needs to be reformulated.
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.
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.
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
This isn't worded in use case language, so needs to be reformulated.
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 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 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.
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 www.weather.com 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.
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:
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)
<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.
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.
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.
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.
data-stepIndicator
data-step
data-stepLocation
data-stepStatus
data-stepNumber
Use case: The user would prefer to see only the critical information and required fields to complete a task.
<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>
<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>
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.
The user would prefer to see only the critical information and required fields to complete a task.
<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>
<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>
<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>
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"
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.
<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>
<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>
<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>
The user prefers alternative text that does not use numerical concepts as well as content that is easier to read and understand.
<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>
<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>
The user prefers alternative text that is easy to read and understand but is good with numbers (eg dyslexic)
<p> Comparing the present clock-reported time you many wish to come a bit later than the normal time. </p>
<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>
<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>
The user can understand words well but has dyscalculia and does not understand numbers
<p> meeting is starting 10 minutes late </p>
<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>
<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>
The user needs
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
<input data-context ="critical" value="refresh" aria-controls="region2" />
<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" />
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" />
The user needs
<div> <strong>warning</strong> in the event of a siren go to the designated protected area </div>
<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>
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>
See feature issues for considerations on requirements for specific features of personalization semantics.
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
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:
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
, field
Optimize the personalization of a product or service's content to ensure it is appropriate for the current context of use as well as relevant for the user.
Needs more specific information about what the actual requirement is. Note the related property is a broken link.
Fulfills use cases: General Context
Relevant properties: @@context
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
Not everyone can understand numbers. The numberfree
attribute is intended as an alternative text for people who can not understand the main content.
This needs to be made higher-level.
Fulfills use case: Non-Numerical Comprehension
Relevant properties: numberfree
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.
Needs more specific requirement.
Fulfills use case: Alternate Language Complexity
Relevant properties: alternative
, easylang
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.
Needs more specific requirement.
Fulfills use case: Non-literal Text and Images
Relevant properties: literal
We propose additional properties so that an author can indicate the existence of this additional information.
Needs more specific requirement.
Fulfills use case: More Help
We propose additional properties where the author can provide additional information or explain what just happened.
Needs more specific requirement.
Fulfills use case: Explain and Feedback
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.
Needs more clear requirement.
Fulfills use case: Indication of Sequence in Breadcrumbs
Relevant properties: @@stepindicator, @@step, @@steplocation, @@stepstatus @@stepnumber
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.
Needs more clear requirement.
Fulfills use case: Reminders and Messages
Relevant properties: message messageimportance, messagefrom, messagegroup, messagetime
See vocabulary structure issues for considerations on requirements for vocabulary structure.
See host language implementation issues and https://github.com/w3c/personalization-semantics/wiki/Comparison-of-ways-to-use-vocabulary-in-content for considerations on requirements for implementation in content.