Edge Conference is basically like TPAC for web developers, so there are always great hallway and pub chats sparked by the main speeches. I’ll write up the breakout session that my boss, Andreas Bovens gave on Installable Web Apps/ Progressive Apps (the jury is out on the preferred name) tomorrow, but there was another interesting conversation I was asked about, so here goes.
The twitter pitch for user queries is: “Like media queries but for user preferences.” … With user queries there would be a number of settings available in the user agent. Presented via a settings UI these would allow users to set certain preferences that were then made available in the runtime in the way media queries provide information about the user agent.
One problem with this is the classic web dev chicken-and-egg problem. Web developers wouldn’t use it until it’s in browsers, browser makers wouldn’t add it until consumers requested it, and consumers won’t request it because they don’t know it’s (theoretically) possible.
Another problem is that most developers wouldn’t care enough to add something to stylesheets that reacted to an expressed user preference for high contrast like this:
and consumers wouldn’t bother expressing preferences if only a handful of sites took note of them.
The proper place for acting on user preferences, I think, is in the browser rather than in the stylesheets of individual sites. We’ve seen the latter experiment in the early 2000s in which some sites gave a method of upping the font size on their sites and remembering the user choice with a cookie. But this only worked for that site. So browsers and operating systems provided a mechanism for zooming, or over-riding the author stylesheets and imposing a minimum font size for all sites.
There are many examples of this: night mode settings that reverse colours; Opera Mini’s image quality setting that will always choose the lowest-quality image, regardless of what <picture> and srcset say, in order to save bandwidth (or even download no images at all); mouse gestures for those who prefer to browse that way; settings to avoid auto-start media; extensions that spoof location to get over location-based content blocking. or block advertising. These work on all sites, regardless of whether the developer cares about user preferences.
And I declare an interest here: I work for a browser vendor and such settings are exactly the kind of personalisation and UX enhancements that we compete on, now we’ve seen the light and stopped building nonsensical proprietary web “standards” to lock users in.
Frances called them “Progressive Open Web Apps” and we both came around to just “Progressive Apps”. They existed before, but now they have a name.
“Progressive Open Web Apps” makes the satisfying acronym “POWA”. Enthused and infused with the mightiness of HTML App Manifest, Add to Homescreen and Web App Install banners, I went to the Marvel comics’ Superhero generator and gave them a mascot for the collective pusissance. Meet…The POWA-arranger:
I jest, of course. Doesn’t matter to me what they’re called. A good user experience, and all the power of URLs and the Web is what matters to me. As Alex writes
Building immersive apps using web technology no longer requires giving up the web itself.
Stay tuned for an announcement about this functionality in Opera for Android. Product Manager Andreas Bovens will be leading a breakout session about installable web apps at Edge Conference London on 27th July. I’ll be there too, to straighten his tie, warm his microphone and shake my pom-poms.
The state of Web Components by Mozilla’s Wilson Page, who says that although there’s lots of disagreements, “the end is near”. Hopefully, now the end is near, we won’t see the vendors all singing “I did it MY WAY”. Time will tell.
Meanwhile, in Re: Custom Elements: is=””, valiant Alice Boxhall fights the righteous fight for accessibility in Web Components v1 rather than v2. Or v3. Or never.
Tim Bray recently wrote an interesting post called </html> in which he stated
interest in work on “vocabulary” (by which they mean the actual angle-bracketed thingies that go into HTML) seems pretty lacking.
Me, I think HTML is done. Which doesn’t mean I think that the whole Web-programming platform is in a good state…
Let’s down tools and focus on more important problems.
I agree with Tim that fixing the web platform is more important right now than adding more elements to HTML. He cites fixing the things that jQuery, Backbone, Angular, Less, DART et al are trying to fix. Those too, but I’d also cite Service Workers, Web Manifest, device APIs as things that are urgently required to bring some level of feature-parity between web and native.
But I think it’s incorrect to claim HTML is finished. We’ve been there before, with HTML 4.01 published in December 1999 and then considered “finished”. HTML5 added lots more elements, some of which are well-used (20% of the top 100,000 sites use the HTML5 doctype, 12.% of those use <header>, for example).
Some of the HTML5 elements haven’t gained good traction. I’m inclined to agree with Matthew Thomas, who wrote (in 2004!) that new elements need to have some form of User Interface:
One way of improving this situation would be to reduce the number of new elements — forget about <article> and <footer>, for example.
Another way would be to recommend more distinct default presentation for each of the elements — for example, default <article> to having a drop cap, default <sidebar> to floating right, default <header>, <footer>, and <navigation> to having a slightly darker background than their parent element, and default <header>…<li> and <footer>…</li> to inline presentation. This would make authors more likely to choose the appropriate element.
Not every manifestation of UI is visual, however. There are still many gaps in the language that have to be patched with WAI-ARIA; on the webkit blog, James Craig writes
Since the WHATWG stopped adding new elements, we’ve seen the <main> element added to the language, which —although comparatively new— is used on 5% of the HTML5 sites in the top 100,000. Although it has no visual UI, it hooks into assistive technologies so that users can quickly get to the main content on a page.
Similarly, <picture> and associated responsive images attributes (srcset, sizes, x and w descriptors) have been added to the language.
Brian Kardell, Léonie Watson, and Steve Faulkner are working on a spec for a Panels and Panel Sets Extension that “defines elements and attributes for constructing a panel or collection of panels based on a single interaction paradigm.”
A 4 chord ditty that’s under 2 minutes but took ages to record; I moved it from acoustic guitar folk ballad to a chamber-style serenade (“a musical greeting performed for a lover… an evening piece, one to be performed on a quiet and pleasant evening”) because that’s what the lyrics are (kind of) about.
The girl in the room
talks at dusk of musk and sandalwood
Of warm winter mornings
and cool summer nights.
Telling tales without tomorrows
of her yesterdays and ancient times;
of a castle in the birch trees
in the calmness of twilight.
The girl in the room
is thunder-lightning: fiercely beautiful;
weighed down with words, then musical,
with her faces in her moon.
She asks if you could love her
and before you can recover
she needs to be somewhere or other.
Through the trees, the breeze sings tunes.
The girl in the room
talks at sunset in her box of text,
of monsoon rain and games and sex
and the ruins where bluebells bloom.
Lost in feelings like a forest,
there are no certain maps to happiness;
She spills wine on her Chinese dress,
and the breeze brings you tunes.
(Written in Barcelona and Cambodia, recorded in Birmingham, mixed in Santa Clara, California. No bluebells were harmed during the making of this song.)
Bah, five hours sleep. Bah overpriced breakfast (but nearest cheap, authentic diner is 5 miles away). Bah suburbia and freeways. Bah inescapable hum of air conditioning. Bah permatanned men named Chet and Dwight with immobile foreheads synergising over 7 am power breakfasts. Bah emails inviting me to meet Vladimir, director of sales, at booth 666 to discuss FelchCloud CDN, ‘our revolutionary cloud-based cloudycloudcloud, taking cloudycloudclouds to The Next Level(tm)’. Bah $4 bottles of water with a little tag printed “hydrate” without even a ‘please’. Bah shiny-toothed shiny-haired empty-souled TV news anchors talking about a lost dog in downtown Santa Nowhere. Bah ‘this life contains chemicals known by the state of california to cause sadness’. Bah “Democracy Boulevard”. Bah the George Bush Memorial Euthanasia Centre. Bah low-cholesterol omelettes made with egg whites. Bah 6 am joggers with bluetooth mobile phone earpieces. Bah.
Media Session spec “enables web developers to obtain different levels of platform media focus and implicit access to platform media keys such as hardware keys found on keyboards, headsets, remote controls, and software keys found in notification areas and on lock screens of mobile devices.” It’s being prototyped by Opera, and we intend to send a Blink ‘intend to implement’ soon.
Adults’ media use and attitudes (PDF) – UK communications regulator (OFCOM) report “on adults’ media use and attitudes … with a particular focus on online use and attitudes”. Chapter 1 compares 2014 against the first report in 2005.
GOLD: Sex, Houdini and the Extensible Web – how the principles of the Extensible Web Manifesto speed up iteration of web standards, and how Project Houdini is bringing those principles to CSS (Disclosure: I commissioned and edited this.)
Trainspotting: Firefox 38 – Yay for our chums at Firefox for the release of FF38 with <img srcset> and <picture> support. CUDDLES.