W3C home > Mailing lists > Public > public-indie-ui@w3.org > February 2013

Re: Proposed Set of Needs/Preferences for v1

From: Andy Heath <andyheath@axelrod.plus.com>
Date: Wed, 20 Feb 2013 19:16:32 +0000
Message-ID: <51252110.20702@axelrod.plus.com>
To: James Craig <jcraig@apple.com>
CC: public-indie-ui@w3.org
Thanks James, very useful comments.
As a general principle there's no reason why they couldn't be broken out 
into booleans.  However, the reason for presenting them in this kind of 
structure has to do with communicating about them at a human level with 
organisations and web authors - there *are* relationships between them 
(for example all the ones about "visual" are exactly that, about 
"visual") and that's important information to convey to users and others 
trying to understand what goes on - not necessarily to programmers, but 
it will certainly set the scene for how they are thought of in my view.

On extensibility - this deliberately limits extensibility. What I was 
hearing from browser vendors was that they wanted something very tight 
where they knew exactly what values might be expected - and the thinking 
was that extensions should require a spec revision (certainly for V1) - 
I think its not a problem if a future version of the spec wants to add 
terms to a vocabulary, but it is very tight for now.  The property names 
are almost like namespaces and its also pretty easy to add new ones if 
needed.  I take your point that the finer granularity of boolean terms 
may provide more flexibility to extend in different ways but I don't 
think the lack of that is actually a real limitation because if 
something doesn't fit one can always introduce a new property to hold 
it.  I was considering including a "general" property for exactly this 
purpose but at the last minute dropped it to keep the number of 
properties down.

The other reason I don't think this vocabulary model (i.e. not booleans) 
is a real problem is because I honestly think this is the right 
organisation for them. That sounds bigoted but its from working with 
preferences about 12 years now and these have really become the accepted 
"categories" in user communities that talk about these things. For the 
most part they relate to human sensory functionalities (vision, hearing 
etc.) and I'm pretty sure they are correct and won't change in the 
timescales we are working in (not human-evolutionary timescales).  What 
I'm saying is these are accepted vocabularies in many accessibility 

I note your points about lower level preferences such as font-size and 
colours but I don't understand how in a world of multiple devices with 
various screen sizes and resolutions these can work.  My understanding 
is that the best place to make a decision about what fontsize to render 
something in is the device - because the device "knows" the 
characteristics that make particular sizes work. A need for 
"largerThanUsual" I can understand and could be responded to but 
particular font sizes I just cannot get my head around unless someone 
only uses one device and that preference is for that device alone.  The 
way I would see it a particular font size would be a solution to the 
need for "largerThanUsual".  Similar arguments apply to colour, contrast 
and probably other low level preferences.  We should talk about this to 
clarify different understandings I think - my view is these prefs need 
to have a level of abstractness to allow flexibility for different 
devices to respond in the way appropriate to the device.  There is 
thinking to do here on the browser-device interaction for cases where 
fonts are embedded in material.

I was planning to respond in detail to each point below but its already 
getting long and the quoting levels won't make it easy to see who said 
what so my suggestion is we go through your email here on the call 
because I think it will provide a very useful vehicle for discussing and 
clarifying many points.  If the model is accepted there is still plenty 
of work to do clarifying many things and going through the implications 
of each preference.

-andy (but don't ignore the below, just signing here for convenience)

> On Feb 6, 2013, at 6:30 AM, Andy Heath <AndyHeath@axelrod.plus.com> wrote:
>> Each preference property instance consists of a (space-separated unordered) list of tokens taken from a strict vocabulary for that property.  For example the preference
> Relying on a strict token vocabulary is not very extensible. Would you consider a value of "foo" to mean "true" or "false"?
>> textualForAuditory
>> indicates a user wishes auditory resources to be replaced by or augmented by textual resources.  This may be done in different ways depending on the media context.  Its values are a list drawn from the vocabulary:
>> (true false captions transcript transcript-simultaneous)
>> If the property has a value of '(true)' this is to be interpreted as a general requirement and a textual form delivered that is appropriate for the media concerned drawn from other tokens in that vocabulary as appropriate to the media context.  A value of (captions)  or (true captions) is to be interpreted as that the user wishes for audio to be accompanied by captions. It implies that the property is true and an intelligent system might infer that if captions are not available but a transcript is then this might be useful to deliver instead even though the user has not requested it explicitly.  The token 'false' must occur alone so a list of tokens containing 'false" and any other value is undefined (this includes '(true false)'.  The application should provide the best match to the user's preferences.
> Is there any reason not break these up into more discrete boolean properties? This would seem much more clear to me as an author, and would allow for cleaner manipulation since you wouldn't need to parse a bunch of token lists; you'd only inspect the properties for which you could provide accommodation.
> 	Boolean 	captions (see subtitles and subtitleLanguage below)
> 	Boolean 	transcriptSimultaneous
> 	Boolean		transcript
> And we'd probably also want:
> 	Boolean		subtitles (may supersede 'captions' pref if we can include SDH (with lang) or CC as options)
> 	LangList		subtitleLanguage (e.g. en-sdh, en-cc, en-us, en-uk, en, es-mx, es)
> 	FontSize	subtitleFontSize
> 	ColorL		subtitleFontColor
> 	Color		subtitleBackgroundColor
> 	ValueList	subtitleFont (e.g. helvetica, sans-serif)
> I also removed the dashes (e.g. transcript-simultaneous became transcriptSimultaneous) so that these can be used as properties in JavaScript without being interpreted as subtraction operations.
>> 1.2 Organisation of Preference Properties
>> Properties are described in terms of the modalities to which they relate. There are two kinds:
>> 	 Properties that relate to delivery of a specific modality - for example highContrast relates to a visual modality.
>> 	 Properties that relate a preferred modality to an existing one and optionally give specific adaptation types that are preferred.
> The categorization seems more useful if it's used to limit privacy access. In other words, a user agent may need to want the user when the web app accesses any information related to media alternatives like subtitles, but it shouldn't have to warn the user of every property being accessed.
>> Where a property preference is for one modality over another delivery may be augmenting the one modality with another or replacing it depending on the best match to the user's context, which may be determinable from other preference settings. For example a user may specify that they prefer auditory information be delivered in textual form with the setting
> I am unable to determine what this first sentence means.
>> Each property instance has a value that consists of a list of tokens as specified in the definition of properties. Each token has an optional list of refinement parameters where such is meaningful.
>> 1.2.1 Interpretation of values
>> [Editors note: This needs a little careful work to tighten it - for example for some vocabulary (true false X Y) is the instance (true) equivalent to (X Y) ? ]
>> Lists of values may not be logically inconsistent. In particular the following are prohibited and if they occur are undefined:
>> 	 Any list of values containing both true and false
>> 	 Any list of values containing false together with any other value (i.e. false must occur alone)
>> 	 A list of values consisting of (true X) should be considered equivalent to (X)
>> Where a list of values contains true and any other values the other values should be considered as refining the value true (i.e. providing more detail of what is preferred). A system responding to the value for some property of
> This seems to confirm my point that discrete boolean values would be better than token lists.
>> might make intelligent inferences about media that might be useable by that user in that context.  Where a vocabulary contains terms (true, false, X, Y) and an instance of a property is either (true, X) or just (X) a system would ideally deliver an X if it is available but if an X is not available then the system might infer that a Y would be useful and deliver that instead.
> I think preference order should be second property rather than be combined with
> e.g. subtitles
> 	Boolean		subtitles (may supersede 'captions' pref if we can include SDH (with lang) or CC as options)
> This indicates a simple on/off setting.
> 	LangList		subtitleLanguage (e.g. en-sdh, en-cc, en-us, en-uk, en, es-mx, es)
> This indicates that the user wants their captions in a particular preference order.
> 1. English subtitles for the deaf and hard of hearing (SDH).
> 2. English closed captions (CC).
> 3. American English subtitles.
> 4. British English subtitles.
> 5. Any other form of English subtitles.
> 6. Mexican Spanish subtitles.
> 7. Any other form of Spanish subtitles.
>> 1.3.1 auditory
>> Indicates a preference for auditory resources
>> true Prefer auditory resources
>> false Default value - no preference
> This is too vague. Is this meant to be about audio descriptions for video? If not, what is it in reference to?
>> 1.3.2 textual
>> Indicates a preference for textual resources
>> true Prefer textual resources
>> false Default value - no preference
> This one is also too vague.
>> 1.3.3 visual
>> Indicates a preference for visual resources
>> Token Values
>> Description
>> true
>> Prefer visual resources
>> false
>> Default value - no preference
>> highContrast	Where visual is the preferred modality the preference is for presentation of text and images of text that has a contrast ratio of at least 4.5:1, or, for larger text, a contrast ratio of at least 3:1 (WCAG2 Checkpoint 1.4.3):
>> http://www.w3.org/TR/WCAG20/#visual-audio-contrast.
>> blackOnWhite	black text and borders on a white background
>> whiteOnBlack	white text and borders on a black background
>> inverseVideo	Text, image and video colors reversed
> These last few might get confusing. For example, most interfaces today default to dark-on-light color palettes, but what does it mean when that is combined with an "inverted colors" preference. Some authors would see this as being the same as having a light-on-dark color palette preference without the inversion. I don't think those are equal, so we would need a note to indicated "darkOnLight + invertedColors" is not equal to "lightOnDark" and vice versa. Better yet, lightOnDark could just be a boolean where the false value implied dark-on-light.
> It's unclear where you think the division lies between "preferred preference" and "actual preference" I'd recommend we stick to actual preferences for version 1.0.
> 	Float		contrastFactor (e.g. 0.0 - 1.0 where 0.0 is "no adjustment" and 1.0 represents the most contrast possible)
> 	Boolean		grayscale
> 	Boolean		invertedColors
> 	Boolean		lightOnDark
>> 1.3.4 tactile
>> Indicates a preference for tactile resources
>> true Prefer tactile resources
>> false Default value - no preference
> I think "tactile" preferences are outside the scope of our working group charter, and these preferences are probably not implementable in any useful way. If you have something specific in mind, please share your example.
>> 1.3.17 languageOfAdaptation
>> Indicates a preference for adaptations to be delivered in a particular language. Note that this may not be the same language in which the user operates the device.
>> Token Values	Description
>> Internal Language Code presented to user as string or selectable widget	TBD: get IETF reference
>> undefined	Preference is for adaptations to be delivered in the default user language for that device
> I think we'd want separate lists for each modality because, for example, a user may prefer English audio with Spanish subtitles, or English audio with English subtitles.
>> 1.3.18 hazard
>> Indicates characteristics of resources that a user DOES NOT wish to receive because of potential hazards for that user. Note also that the meaning of a value of true without any other value is undefined for this property (i.e. it must have a refinement to be meaningful)
>> Token Values	Description
>> false	Default value - no preference
>> flashing	A preference that a resource having a visual pattern that flashes more than three times in any one second not be delivered to the user. Note that this level of flashing can cause seizures in some users (WCAG2 Guideline 2.3.1 A):
>> http://www.w3.org/TR/WCAG20/#seizure].
>> flashingStrict	A preference that a resource having a visual pattern that flashes more than three times in any one second not be delivered to the user. Note that this level of flashing can cause seizures in some users (WCAG2 Guideline 2.3.1 AAA):
>>   http://www.w3.org/TR/WCAG20/#seizure
> Unless I'm missing something, there is no difference between the description of these properties.
>> motionSimulation	A preference that a resource simulating motion not be delivered to the user. Note that for some users such a resource may induce nausea
>> sound	 Prefer that resources generating an audio pattern that can cause the user to have seizures [ISO 29138] not be delivered to the user.
> Sound is too vague. This should be split into separate prefs, but I wonder they can be specified in a discrete enough way to be implemented in a useful manner.
> For example:
> 	Boolean		avoidVisualFlashing (Everyone should be doing this anyway. Why do we need a preference?)
> 	Boolean 	avoidMotion? (What does this mean? Does it mean the same thing to everyone?)
> 	Boolean		avoidCertainSounds? (What does this mean? Does it mean the same thing to everyone?)
>> 1.3.19 ATInteroperable
>> Indicates that where possible resources that are interoperable with AT should be selected. Note that the default for this preference unless otherwise defined is true.
> Too vague. There are many kinds of assistive technologies.
>> 1.3.20 simplePresentation
>> Indicates a preference for very simple presentation of interface and content even if the device supports more complex presentation (for example if the device large or high-resolution screen)
> Too vague. "Simple" means something different to everyone who hears the term.


Andy Heath
Received on Wednesday, 20 February 2013 19:17:08 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:09:15 UTC