[User Context] various substantive edits from TPAC feedback meetings with CSS WG and WebApps WG

I believe I have completed all the substantive changes to IndieUI User Context that we received at TPAC, mainly from the joint meetings and follow-up emails with the CSS WG (especially Tab) and WebApps WG, as well as through some offlist follow-up discussions. I think the new document is somewhat difficult to read, so I’m going to be cleaning it up over the next several weeks, and updating the explanatory introductions and informative examples, but the primary substantive changes are in.

Summary of Changes

Brought back the general JavaScript interface (was window.settings.valueForKey(); now window.userSetting()) for accessing all user settings, including those that do and do not make sense as media features.
Removed the Media Features that the CSS editor (Tab Atkins) objected to. These settings can still be queried via the userSetting() method, but are no longer proposed as Media Features. 
Demoted remaining Media Features to be an alternate means of access through @media and matchMedia, rather than the primary interface for IndieUI User Context.
Clarified some example uses of color settings using HSLA suffixes (e.g. user-background-color-luminosity, user-subtitle-background-color-alpha) as useful Media Features. Discussion of this idea is ongoing with the CSS WG. I plan to follow-up on www-style in the New Year.
Removed all extensions to the MediaQueryList interface, because we determined they were unnecessary due to the other changes/additions.
Reorganized the document to list the Settings Keys along with an optional “Associated Media Feature” where appropriate. Presumably these Media Feature references will eventually move to the CSS specs. One such example (monochrome) is already in CSS3, so it’s referenced by link rather than specified in the IndieUI User Context draft.
Brought back some additional Settings (e.g. subtitle-languages) that were never attempted as Media Feature because that format didn’t make sense for these settings.
Removed the taxonomy parameter of the previous JS interface in favor of using a simplified prefixed key name for taxonomy- or vendor-proposed settings. e.g. window.settings.valueForKey('foo', 'bar') would now be accessed as window.userSetting('-bar-foo'). It was also proposed this could/should be a map (window.settings.fooBar or window.settings['fooBar']) but my understanding is that the map approach would not work well with the privacy model, so this needs to be an explicit accessor method.
Clarified the privacy model some more.
Added additional code examples.
Updated some of the ReSpec utilities for auto-generating sections/lists based on other markup in the document. e.g. there are now generated alphabetical lists of the settings keys and media features referenced in the document.
Added IDL methods to bind settings listeners (window.addUserSettingListener and window.removeUserSettingListener) as well as the IDL for the callback interface (handleUserSettingChanged).
Various editorial changes and to-dos.

Current Editor’s Draft
https://dvcs.w3.org/hg/IndieUI/raw-file/default/src/indie-ui-context.html

Major Substantive Diffs
Note: Indentation changes make these diffs almost impossible to decipher. Let me know if you have questions.
https://dvcs.w3.org/hg/IndieUI/rev/e343c00c58c6
https://dvcs.w3.org/hg/IndieUI/rev/76a207235379

Received on Wednesday, 18 December 2013 21:49:36 UTC