Personalization involves tailoring aspects of the user experience to meet the needs and preferences of the user. For example, having familiar terms and symbols is key to many users being able to use the web. However, what is familiar for one user may be unfamiliar to another requiring them to learn new symbols. The challenge has been the ability to identify the types of content in a document that should be adapted to the preferred user experience. The introduction of standardized semantics allows web applications to customize the exposure of that content to one that is familiar to individuals based on their needs and preferences. This specification defines standard semantics to enable user driven personalization such as the association of a user-preferred symbols to elements having those semantics. This ensures that users can quickly find familiar icons, such as a help icon, that apply to user interface elements.

Introduction

The goals of this specification include:

This is a proposal to define syntax for adaptable content such as: links, buttons, symbols, help and keyboard. This may be an WAI-ARIA COGA Extension.

Personalization involves tailoring aspects of the user experience to meet the preferences or needs of the user. For example, having familiar terms and symbols is key to being able to use the web. However what is familiar for one user may be new for another requiring them to learn new symbols. Personalization could include loading a set of symbols that is appropriate for the specific user, ensuring that all users find the icons simple and familiar.

Technology holds the promise of being extremely flexible and the design of many systems includes the expectation that users will be able to optimise their interaction experience according to their personal preferences or accessibility requirements (needs).

Why We Need Personalization

We need personalization because:

Some users need extra support. This can include:

For this we need standardized terms and supportive syntax that can be linked to associated symbols, terms, translations and explanations for the individual use via an attribute and personal preferences.

For example, assume an author can make it programanticaly known that a button is used to send an email. At at the user end, the button could be renderer with a symbol, term, and/or tooltips that is understandable for this particular user. It could automatically imply F1 help that explains the send function in simple terms. It could be identified with a keyboard short cut that will always be used for send. In addition it could be identified as important and always rendered, or rendered as a large button.

Working examples of how this could be used in practice, with user preferences, are available at https://github.com/ayelet-seeman/coga.personalisation. This is a project to help personalization for any use - including people with learning and memory issues. It is described more at: https://www.w3.org/WAI/PF/cognitive-a11y-tf/wiki/Easy_Personalization.

This project consists of 4 parts:

  1. JSON files for user setting
  2. Proposal for new syntax: (This document)
  3. An HTML page that uses some of the new syntax: https://github.com/ayelet-seeman/coga.personalisation/tree/ExampleWebPage/
  4. Scripts that a web author can use or include that read the user settings in the JSON files and adapt the page for the user needs: https://github.com/ayelet-seeman/coga.personalisation/tree/Script-Options

This is one example of personalization based on semantics. Others may follow. It is also worth noting that the GPII project is working on making user preferences portable which would also enhance this work.

In another use-case we would like to see interoperable symbol set codes for non-verbal people. Products for people who are non vocal often use symbols to help users communicate. These symbols are in fact peoples language. Unfortunately many of these symbols are both subject to copy write and are not interoperable. That means end-users can only use one device, and can not use apps or AT from a different company. An open set of references for symbol codes for these symbol sets however, could be interoperable. That means the end user could use an open source symbol set or buy the symbols and use them across different devices or applications. Symbols could still be proprietary but they would also be interoperable.

Contextual Personalization

One important factor in optimizing the personalization of a product or service is to ensure that the personalization is appropriate for the current context of use. For example, settings that will suit the user of a mobile phone in their office or home will not be well suited to that user when they are driving a car. In a home or office, the typical user would probably prefer to send and receive text messages using the keyboard and screen of the mobile phone. However, in the car, voice input and text to speech output would be the most appropriate. In this car context, the profile settings of a typical user might be very similar to those that a blind user would use in all contexts.

Important Terms

Personalization Use Cases

This Section covers use cases that can be addressed by personalization, and references the vocabulary items that help meet the use cases.

Simplification

Requirement: The user must be able to request a way to identify and differentiate between critical features, medium features and less important features. These need to be defined as important from a user perspective in the content. Typically, critical features may be used by many or most users, 90% of the time or more. High important features would be above 60% use. Medium important features would be 20% of users use it 20% of the time . Under 20% usage would be of low importance.

User experience: Based on personalization setting the user can see less options. A sample user experience is available at https://rawgit.com/ayelet-seeman/coga.personalisation/demo/conactUs.html

Relevant properties: simplification

Adding Context

Requirement: Having familiar terms and symbols is key to being able to use the web. However what is familiar for one user may be strange for another requiring them to learn new symbols. If a user agent or script knows the context of links, buttons, and other page elements then symbols and text used can be ones that the user understands. This can include:

For that we need to standardize supportive syntax and terms that can be linked to associated symbols, terms, translations and explanations, for the individual, via an attribute.

Example user experience:, if an author gives to a button a role "send" then, without any work by the author, the button could be automatically rendered with a symbol, term, and/or tooltips that is understandable by a particular user. It could automatically imply F1 help that explains the send function in simple terms. It could be identified with a keyboard short cut that will always be used for send. In addition it could be identified as important and always rendered, or rendered as a large button. This would enable a consistent UI experience across applications and websites.

Relevant properties: action, destination, field

General context

Requirement: One important factor in optimizing the personalization of a product or service is to ensure that the personalization is appropriate for the current context of use as well as what is relevant for the user. For example a female user with a cognitive disability may need less options, and options that are for men are less likely to be relevant for her and may be demoted to bellow the scroll or placed under a "more option" button.

Relevant properties: context

Concept codes

Requirement: We would like to enable interoperable symbol set codes for Non verbal people. Products for people who are non vocal often use symbols to help users communicate. These symbols are in fact peoples language. Unfortunately many of these symbols are both subject to copy write AND not interoperable. That means end-users can only use one device, and can not use apps or AT from a different company. There are open set of symbol codes for these symbol sets, that could be referenced then they can be interoperable. alternatively wordnet nodes could be referenced. If the users symbols are mapped to the same nodes then users agents will be able to load the user understandable symbol. That means the end use could buy the symbols and use them across different devices or applications. They would still be proprietary but they would also be interoperable.

User experience: AAC users will load symbols that they understand in different applications that are made by a different provider.

Relevant properties: concept

Potential parts of a page

Requirement: The following could be extensions for aria landmarks or ePub

User experience: symbols and colors could be used consistently across different content.

Links (such as ePub nav maps) can be automatically generated for people learn via keypoints or examples.

Examples:

Relevant properties: @@

Number free

Requirement: Not everyone can understand numbers. We therefor suggest coga-numberfree for alternative text for people who can not understand the main content

User experience:

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 mouse over the content and a tooltips would give the number free value

Relevant properties: numberfree

Non-literal text and images

Requirement: Not everyone can understand non-literal text and icons such as metaphors, idioms etc. We need a tag that identifies text or images as non literal and allows the author to explain non-literal text and images to users.

User experience:

A suggested user experience would be: Non literal content could be rendered by the user agent slightly differently so that the user knows that this content should not be taken literally and that a literal explanation is available. The user can then mouse over the content and a tooltips would give the literal value.

Relevant properties: literal

Explain and feedback

Requirement:

Some users need additional help. We request an attribute where the author can provide additional information or what just happened.

Relevant properties: feedback, explain

More Help

Requirement: Some users may need additional information or specifically additional help information. We request additional attributes so that an author can indicate the existence of this additional information.

Relevant properties: moreinfo, extrahelp, helptype

Potential Features

The following may not be necessary

Language type support

Requirement: Sometimes you may want to provide a simplified version of a section of a page. For example, you may wish to provide a simplified summary of legal document, but still have a longer version for other users. These alternative versions may not be identical in content but maintain the gist of the original content.

Relevant properties: alternative, easylang

Logs

This proposal is to track the tasks that a user has done, so that they can be reminded of them, and return to or fix a task. The suggested syntax should allow the author to transform some of the information into breadcrumbs via CSS, and the user system can read and present more or less information to the user as per their preferences.

Preferably this should be in the header so that the user agent can build a cross application log of user tasks.

Note that there is no default value.

Relevant properties: log, step, actiontaken, steplocation, status

Log usage examples

<div coga-log="booking trip" coga-step="1" aria-label="buy ticket" aria-hidden="true" 
    coga-actiontaken="bought ticket to NY return" steplocation ="uri" />

or

<div coga-log="booking trip" coga-step="1" coga-actiontaken="bought ticket to NY return">
  buy ticket
  <a href="uri">change</a>
</div>

or the step number can be implied by the DOM

<div coga-log="booking trip">
  <div coga-actiontaken="bought ticket to NY return">
    buy ticket 
    <a href="uri">change</a>
  </div>
</div>

Alternative syntax for log

Note we are considering supporting an alternative syntax such as:

<log name="booking trip"> 
  <step status ="done"> 
    <name>buy ticket</name>
    <actiontaken>bought ticket to NY return</actiontaken>
    <view changepossible="yes">url </view>
  </step>
  <step  status ="done"> 
    <name>hotel</name>
    <actiontaken>booked Sheraton single room</actiontaken>
    <view changepossible="yes">url </view>
  </step>
  <step  status ="current"> 
    <name>car rental</name>
    <view current changepossible="yes"/> 
  </step>
</log>

Reminders and messages

Requirement: We require an attribute that enables different users to experience different amount of reminders and messages based on personal preferences. Reminders are a wonderful tool for many people with cognitive disabilities. However too many reminders will be annoying or distracting for some other users. Currently people can turn off distractions such as Skype, and Facebook, across different devices, and then may forget to turn them back on.

These semantics allow for different solutions so that users are able to focus without missing important messages. Users need to manage all distractions by forming a cross application and cross device distraction matrix that manages all distractions in one setting. It is based on a matrix for distractions at the operating system , browser or cloud level. People and users can be clustered in terms of importance or groups. For example, the CEO and your child's care giver could both be considered critical contacts. So even if they do not feel the message is urgent they can sometimes disrupt the user anyway. Some family members and important colleagues can be in another group, friends and extended family in a third group, system messages from the compliance system can be a different group again.

Relevant properties: messageimportance, messagefrom, messagecontext, messagetime

Distractions

Requirement: We require an attribute that indicates a distraction so that some users may be able to remove them from content.

Relevant properties: distraction

New Misc.

Triggers: for emotional support. coga-trigger: violent, racism, etc. coga-keyparts of the page: key points, example, note, warning, external (content), advertisements, (some may be in digital publishing) coga-dates - (cancellation, return)

Structure of Properties

Semantic properties have the characteristics described in the following sections.

Related Concepts

Advisory information about features from this or other languages that correspond to this property. While the correspondence may not be exact, it is useful to help understand the intent of the state or property.

Value

Value type of the semantic property. 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.

The "undefined" value, when allowed on a state or property, is an explicit indication that the state or property is not set. The value is used on states and properties that support tokens, and the "undefined" value is a string that is one of the allowed tokens. It is also used on some states and properties that accept true/false values, when "undefined" has a different meaning than "false".

These are generic types for states and properties, but do not define specific representation. See State and Property Attribute Processing for details on how these values are expressed and handled in host languages.

List of properties

simplification

@@1-line description

(formerly coga-importance).

Having the following values: (main task such as send for an email)

I can't figure out from the description here what the intended list of properties are.

  • coga-simplification="simplest". This setting should be used on:
    • Elements that are essential for the key function (from the user perspective) of the page (Example: The send button for an email draft) or
    • Elements that are sometimes critical to a user being able to use the site, such as "save my work" or "emergency instructions" or
    • Elements that are used by over 90% of a user group (such as parents or teachers) use this element most times they use the content

Typically 3 links or buttons would be considered "simplest"

  • coga-simplification="high". This setting should be used on:
    • Elements that are used frequent (Example: The delete button for an email draft) or
    • Elements that are sometimes important to a user being able to use the site, such as settings or
    • Elements that are used by frequently (over 60%) by a user group (such as parents or teachers) use this element most times they use the content
  • coga-simplification= "med". This is the default value.
  • coga-simplification="low". This setting should be used on elements that are rarely used or only used by advanced users. (Example: The terms and services or the archive button for an email draft)

These semantics aid simplification. But what content is most useful to a user varies from user to user. For example, men may be more interested in mens clothing, and may not be interested in the more frequently use womens clothing option. For that reason we may add context for elements that will help the personalization agent select the most useful content for a given user. This is also necessary for reminders (see bellow). RDFa may be the best way forward for this aspect.

It is worth mentioning that a lot of this information is known for personalization of advertisements and content optimization.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token
Values:
Value Description
medium (default)
high
low
simplest

action

The action attribute provides the context of a button. It is typically be used on a button element or element with role="button".

For example: <button coga-action="undo" >default</button>

The user experience may be simply replacing the text for the term "undo". Note that there is no default value.

Supported Values:

The following could be supported values of coga-action for buttons:

compose
compose new item such as an email. (Default importance = "critical".)
next
move to the next item in the series. (Default importance = "critical".)
delete
delete current item, selected control or text
previous
move to the previous item in the series. (Default importance = "critical".)
toc
opens a table of content
submit
submits the form data or request to the server. (Default importance = "critical".)
undo
revert to the state before the user's most recent changes
cancel
closes the dialog and discards any changes the user may have made within that dialog. (Default importance = "critical".)
reset
resets all the controls to their initial values
label
add label to the selected item or the item at the current location.
buy
buy the selected item or buy the item at the current location. Often involves adding the current item into a shopping cart. (Default importance = "critical".)
add
add the selected item or the item at the current location to a list
move
move the selected item
save
save the current content. (Default importance = "critical".)
send
send a form, email or request. (Default importance = "critical".)
close
close current dialog. (Default importance = "critical".)
more
show more information
print
print current page, selection or the item at the current location
received
open received folder
sent
open sent folder
edit
edit current item, selection or the item at the current location
forward
forward to current item such as an email
reply
reply to current item such as an email. (Default importance = "critical".)
upload
upload file to the server
open
open item. (Default importance = "critical".)
new
open new item. (Default importance = "critical".)
settings
open settings and options
mode
change the mode or functionality. (Default importance = "critical".)
higher
increases the level of the relevant setting. (Default importance = "critical".)
lower
increases the level of the relevant setting. (Default importance = "critical".)
my profile
opens the user’s profile page
expand
expand or unexpand the current item
refresh
manually refresh the current contents of the screen
properties
shows the properties of the item
help
opens a help function. (Default importance = "critical".)
cut
removes the selected control, item or text and places it on the Clipboard
copy
copies the selected control, item or text onto the Clipboard
color
opens a color picker
date
opens a date control. (Default importance = "critical".)
remove
remove an item from a list
right
moves a selected item to the right to another column or list
left
moves a selected item to the left to another column or list
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

destination

The destination attribute provides the context of a link. It should be used on a link element or element with role="link".

For example: <a href="home.html" coga-destination="home" >our main page</a>

The user experience may be simply replacing the text for the term "home" and adding an icon. Based on personalization setting the user can see different icons. A sample user experience is available at https://rawgit.com/ayelet-seeman/coga.personalisation/demo/conactUs.html

It may also position this button to a location on the screen where the user is expecting the home page link. Note that there is no default value.

Supported Values:

The following could be supported values of coga-destination.

home
initial or main page of a website or application
contact us
opes contact information for content owner or producer
our phone
phone content owner or producer
our email
email content owner or producer
site map
content containing a list of pages in a web site
help
a help function, support or instructions
chat help
Human help or a dialog help function such as a chat bot
about us
information about the content owner or producer
terms
terms and conditions
tools
available tools for the current content
services
services available from the content provider
products
products available from the content provider
comment
submit a comment on the current item
language
language options
sign in
sign in to current web site or application
sign out
sign out current web site or application
sign up
register for the current web site or application
social
content provider on social media
post
post current item. Item will be visible to other parties.
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

field

field provides the context of a text input field such as a text box. It is typically used on an input of type text, or element with a responding role.

For example: <input type="text" name="fname" coga-field="phone"/>

The user experience may include filling in the field and adding an icon.

coga-field values that would typically be on form controls and would have a user context - for example phone would relate to the user's phone. Note that there is no default value.

Note they can be concatenated such as coga-field="birthdate month"

name
full name
honorific-prefix
prefix or title (Mr., Mrs. Dr., etc.)
given-name
given or first name
additional-name
additional or middle name
additional-name-initial
additional or middle name initial
family-name
family name, surname, or last name
honorific-suffix
suffix (Jr., II, etc.)
nickname
nickname
street-address
full street address condensed into one line
address-line1
first line of street address
address-line2
second line of street address
address-line3
third line of street address
city or locality
locality or city
area
administrative area, state, province, or region
postal-code
postal or ZIP code
country
country name
email
email address
tel
full phone number, including country code
tel-country-code
international country code
tel-national
national phone number: full number minus country code
tel-area-code
area code
tel-local
local phone number: full number minus country and area codes
tel-extension
phone extension number
fax
full fax number, including country code
fax-country-code
international country code
fax-national
national fax number: full number minus country code
fax-area-code
area code
fax-local
local fax number: full number minus country and area codes
fax-extension
fax extension number
cc-name
full name, as it appears on credit card
cc-number
credit card number
cc-exp-month
month of expiration of credit card
cc-exp-year
year of expiration of credit card
cc-exp
date of expiration of credit card
cc-csc
credit card security code
language
preferred language
bday
birthday
bday-year
year of birthday
bday-month
month of birthday
bday-day
day of birthday
topic
Topic for the form. Typically selected from a list of reserved words
comment
comment section. Typically a free text field
subject
form subject. Typically a free text field
answer
answer to a section question
org
company or organization
organization-title
user's position or title within company or organization
sex
sex or gender
gender
gender identity
url
Website URL
photo
photo or avatar
section-*****
used to group forms together

coga-field can also give the context for text elements.

coga-field values on text are:

our-tel
full phone number, including country code of the website owner
our-tel-country-code
international country code of the website owner
our-tel-national
national phone number of the website owner: full number minus country code
our-tel-area-code
area code of the website owner
our-tel-local
local phone number of the website owner: full number minus country and area codes
our-email
email address of the website owner
our-street-address
full street address condensed of the website owner
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

context

Coga-context would let the author give additional contextual information about the content.

Coga-context accepts the values of a URI or shortened URI. Note that there is no default value.

<a href="women.html" coga-context="openref:gender#femail">women</a> 

To make this work without an RDF parser we recommend maintaining a list of recommended ontologies.

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

concept

@@1-line description

Supported Values: URL

Note that there is no default value.

Examples:

<img coga-concept="http//wordnet.com/node/girl" href="mygirlsy.bmp/> 
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: URI

numberfree

@@1-line description

Supported value : String

Note that there is no default value.

For example:

<span coga-numberfree="almost all">9 out of 10 </span>
			
<span coga-numberfree="hat and coat weather">The weather is 9 degrees</span>
			
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

literal

@@1-line description

Supported value: String

Note that there is no default value.

Examples:

<span coga-literal="it is raining hard"> It is raining cats and dogs </span>

User agents can render non-literal text in a different way so that users will know that this is non literal. They can then use a mouse over or other technique to receive the translation.

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

feedback

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.

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

explain

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.

Examples:

coga-explain="press enter to send the email" 
coga-feedback="your email on birthdays was sent" 

These values will change when the email is sent.

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

moreinfo

@@1-line description

Supported values: URI

Note that there is no default value.

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

extrahelp

@@1-line description

Supported values: URI

Note that there is no default value.

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

helptype

@@1-line description

Example:

<button type="button" coga-extrahelp="uri2 uri3" >undo</button>

URI 2 may read:

<div id="uri2" 
    coga-helptype="morehelp" 
    coga-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()" 
    coga-helptype="humanhelp" 
    coga-hidden="true">
  I want a person to help me
</a>
<div id="uri3" 
    coga-extrahelp="glossary" 
    coga-hidden="true">
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token
Values:
Value Description
automated
dictionary
faqs
glossary
helpform
humanhelp
morehelp
simplified
thesaurus
tooltips
topicsearch

alternative

Would be used on an alternative content as an alternative to more detailed or difficult to understand content. coga-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:

  • On text: easylang, explain, more, vocab500, vocab1000, vocab2000, active, literal, numberfree, smallsentences, chunks
  • General: lessoptions. Whitespace, largefont 
  • Images: symbolic , realistic
  • p0, p1, p1, p2, p3 Where p0 are images with true content, p1 is a symbol or illustration that is typically shown with alt="", P2 are extra illustration that most people will not mind such as at the start of a paragraph or option. p3 are for disability centric illustrations that can disturb other people and may be mid sentence. 

Note that there is no default value.

Example:
<div>
  <span coga-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>
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token list
Values:
Value Description
active
chunks
easylang
explain
largefont
lessoptions
literal
more
numberfree
p0
p1
p1
p2
p3
realistic
smallsentences
symbolic
vocab1000
vocab2000
vocab500
whitespace

easylang

coga-easylang will contain a version 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 sections.

Supported values: String

<span coga-easylang="some text that is easy to read"> some convoluted obtuse text</span>

Where coga-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.

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

log

Contains a label or name for the log that reflects the process or task purpose.

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

step

Contains the number of the step in the process or task.

This can sometimes be implied via the DOM.

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

actiontaken

Contains a summary of key actions taken during a step of a process.

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

steplocation

Contains a link to the location of the step for editing and review. The referenced location should support editing.

An embedded link inside a step can serve the same function as coga-steplocation.

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

status

Describe whether a step in a process is done, pending, current, or not done.

Need a better token for "not done", or is that value actually needed given the presence of prending and current?

Not clear how the true and false values below relate to the done/pending/current/not-done values above.

When actiontaken is not null it implies that coga-status is true.

When actiontaken is null it implies that coga-status is false.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token
Values:
Value Description
done @@
pending A step has not yet been completed but is not the current step. It is used actiontaken when has not been used.
current @@
not-done @@
true @@
false @@

messageimportance

@@1-line description

Example:

<div role="alert" 
    coga-messageimportance="medium">
  It is your daughter's birthday tomorrow
</div>
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token
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.

messagefrom

@@1-line description

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

Note that there is no default value.

Example:

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

messagecontext

@@1-line description

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.

Example:

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

messagetime

@@1-line description

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.

Example:

<div role="alert" 
    coga-messageimportance="medium" 
    coga-messagefrom="my calender" 
    coga-messagecontext="work" 
    coga-messagetime="10.02.2017.00.00-16.02.2017.00.00">
  Renew your driving license this week
</div>
<div role="alert" 
    coga-messageimportance="critical" 
    coga-messagefrom="my calender" 
    coga-messagecontext="work" 
    coga-messagetime="16.02.2017.00.00">
  Renew your driving license ASAP
</div>
Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: string

distraction

This attribute should be used on non essential, detracting content, so that people who have problems keeping focus can turn them off. An example user experiences would be to hide all distraction content.

Example:

coga-distraction="moving ad"

Supported values: animations, auto-starting, moving, ad, message, chat , overlay, popup
Auto-changing (logs) third-party, offer ( includes suggestions).

Note that there is no default value.

Note that elements with the coga-distraction attribute should also have a label or accessible name.

Characteristics:
Characteristic Value
Related Concepts:
Used in Roles: All elements of the base markup
Inherits into Roles: Placeholder
Value: token list
Values:
Value Description
ad
animations
auto-changing
auto-starting
chat
message
moving
offer
overlay
popup
third-party

User Settings

This section is not yet developed. A draft of user settings is available separately.

Vocabulary Implementations

RDFa

The context based properties should be convertible to RDFa. (see RDFa Primer) and the task force should create this mapping.

Note that a lot of this can be done using RDFa. However it is easy to change the meaning with RDFa and a very basic parser will misinterpret the result. The coga work needs to be usable by as many authors as possible, and not only those who can implement RDF logic.

Further , personalization setting need to be limited, and RDF can give an unlimited number of potential options which will make the system unusable. (This is unless we create restrictions and controls on an ontology uses - such as mapping to know ontologies.)

For example, in the code below the property homepage does not refer to the home page of the site but of the person being references. Beyond declaring the type of data we are dealing with, each typeof creates a new blank node with its own distinct properties.

<div vocab="http://xmlns.com/foaf/0.1/">
<ul>        
   <li typeof="Person">          
      <a property="homepage" href="http://example.com/bob/">Bob</a>        
   </li>        
   <li typeof="Person">          
      <a property="homepage" href="http://example.com/eve/">Eve</a>        
   </li>        
   <li typeof="Person">         
      <a property="homepage" href="http://example.com/manu/">Manu</a>        
   </li>     
</ul>
				

We may recommend adding RDFA that describe the role of the item (see RDFa Primer):

<div resource="/alice/posts/jos_barbecue">
	<h2 property="title">Jo's Barbecue</h2>
	<p>Date: <span property="created">2011-09-14</span></p>
	<h3 property="creator">Eve</h3>        
	...     
</div>
			

WAI-ARIA

Properties in this case can be represented as WAI-ARIA properties by adding the prefix "aria-" to the attribute name, and the property value as the attribute value.

The prefix above is not yet accepted by the ARIA Working Group.

Additional WAI-ARIA roles

Requirement: We may want to add roles for sections a page such as: contact us - for a contact us form 

User experience: symbols and colors could be used consistently across different content.

Nav maps can be automatically generated for people learn via key-points or examples.

Further these sections could be hidden in the normal rendering of a page or rendered the top of page depending on user preferences. The location of these sections can also be changed, based on the user preference, enabling the user to find them easily.

Values:

  • summary
  • keypoints
  • example
  • note
  • warning
  • step
  • external - for external content, such as sponsored or advertising
  • offers - for special offers that are complementary to the main content or task
  • advertisement - advertisement or sponsored content
  • contactus
  • aboutus

HTML Microdata

Properties in this vocabulary can be used in HTML Microdata [[microdata]]. The property name is uses as the item name, the property value as the item value. Authors SHOULD use the itemtype property to express to the value type defined in this specification.

Acknowledgements placeholder