It’s five years since I began work at Opera, the plucky Norwegian browser maker. Despite this appalling handicap, Opera’s gone from 48.6 million users in June 2008 to over 300 million users.
Doing my job, I’ve co-authored a book and had the privilege of visiting India, Indonesia, Japan, Australia, Netherlands, France, Spain, Russia, Poland, Bulgaria, Germany, USA, Czech Republic, South Africa, Denmark, Sweden, and (of course) Norway, and met some of the cleverest people in the industry.
I’ve gone from being a man who forced a corporate website to behave itself in IE6 every day (with only Firebug as my sword and a couple of forums as my shield) to someone who rarely makes full websites any more, but reads billions of emails about the next tranche of fascinating standards that take the web to new, ever more-powerful ubiquity.
Is Github racist? asks Terence Eden in linkbaiting mode. No, but “we should consider the practice of not supporting Unicode as outmoded and dangerous as assuming every year can be represented by a two digit number”.
CSS stacking with display:table – a way of moving blocks out of source order without Flexbox by HTML5 Doctor Ian Devlin. Not as powerful as Flexbox, but for the use cases it serves its terser and better supported.
Exposing privileged APIs to web content – “a discussion on the challenges we face in exposing privileged APIs to web content and a proposal for exposing such APIs to web pages by mitigating the risks inherent in doing so.” by Rich Tibbett
Resource Priorities – “Using the lazyload attribute on a resource will signal to the User Agent that it may want to lower the download priority of that resource”
Do not view source! says CyberTrial Lawyer’s user agreement (which I paraphrase as it forbids me from quoting it). View source is prohibited because they own the intellectual property on all of the code. Which may come as a surprise the the jQuery and WordPress teams
On Thursday, I travelled down to the swanky Mozilla offices in London to an open invitation to meet the W3C Technical Architecture Group (TAG), who were in town (presumably for this week’s Bilderberg meeting). I’ve met many of them before, and they’re all jolly good people, but I’d never met them as an entity.
I’d lugged my laptop down to take notes, as I’d anticipated some sort of relaxed presentation and then a public Q&A (by “relaxed” I mean, not live streamed and in front of the small 30-strong audience enjoying Google’s beer donation). It was unstructured, however, with TAG people mingling around and presumably answering the same questions repeatedly. (I’ve given this feedback to the co-chair, Dan Appelquist, already.)
I asked “What does the TAG do?” after Dan introduced the evening. Dan and TimBL answered that the TAG is an oversight body that ensures W3C specs kind of cohere, and kind of stay within the Architecture of the World Wide Web that TAG defined. Jo Rabin followed up with the question “how does TAG measure its success?” to which there was a less definite response. (However, the Web continues to do rather well, so arguably they haven’t broken anything.)
It’s good that the TAG want to meet developers. Tag member Jeni Tennison asked me what my pet peeve with the TAG is. I answered that there isn’t a representative of jobbing web developers on the team. Sure, there are some people who represent browser vendors on the team, but people like me don’t make web sites every day any more (if they ever did). I’m starting to feel that although lip service is paid to the needs of developers in the Priority of Constituencies, it’s pretty hard for a developer to get his/her voice heard.
working in web standards is incredibly frustrating. It involves no small amount of interaction with people who seem to have graduated from the Hacker News Commenter School of Diplomacy. We âauthorsâ donât hold much weight in standards discussions; at least, nowhere near as much as browser representatives do.
Now, do I think more full-time designers and web developers should get involved in standards, after all this glowing endorsement? Absolutely. The fact is, we donât have the kind of voice we ought to have because weâre not there. âAuthor preferenceâ is very often used to argue for or against something in a standards discussion, but very few of us are around to agree or disagree. Weâre a talking point more than weâre active participants.
The question is, what to do about it? Six years ago, the CSS Eleven announced with a fanfare that it was an organisation “committed to helping the W3C’s CSS Working Group to better deliver the tools that are needed to design tomorrow’s web”, made itself a lovely website and then promptly disappeared. I’ve certainly heard from developers and designers that it’s hard to do a full-time job, keep up with all the new developments and get actively involved in the time-consuming minutiae of standards development.
Perhaps we wound the Web Standards Project up too early. But I don’t think so. Perhaps we need someone embedded in the TAG who is paid by a benevolent employer to devote 50% of his/her time to standards while continuing to work. Perhaps we need someone paid by the W3C full-time to represent developers.
This week’s reading list comes to you with a renewed vigour, and a zesty swagger in its stride, as several people sought me out at Google I/O to tell me how useful it is. Thanks for the feedback.
This is simply a list of stuff I’ve read this week, and posted links to over Twitter. However, I know that lots of real people don’t read Twitter all day, or it’s blocked at work, so this is an amalgamated list. Note that these links interested me, but I neither endorse them nor vouch for their accuracy.
At Google I/O last week, I was hoping to hear Google’s thoughts on responsive images. Every developer I speak to wonders how to send the right image size to browsers, Google is obsessed with performance, Peter Beverloo and Paul Kinlan were explicit in their talk Mobile HTML: The Future of Your Sites that web sites should request the correctly-sized images. But how?
The <picture> element seems to be at an impasse; no-one from Google showed any enthusiasm (nor does any other browser vendor, seemingly). That’s OK; when I dreamed it up 18 months ago it was a strawman to get the conversation going in standards groups (I’d previously been told that there was no need for any standard, as everyone would have huge devices on reliable, fast wifi in the future).
Google has proposed a Client Hints header with device resolution, viewport size, touch-enabled flag etc. The idea is that the server generates lots of different sizes of foo.png, and when a request comes for foo.png, the server looks at the Client Hints and sends the most appropriate size. Opera (and soon, Chrome) announces that it accepts webP images, so the server could intercept requests for foo.png and send foo.webp in its place for conforming browsers, thereby reducing bandwidth.
This server-side negotiation will be great for legacy pages as it means source code doesn’t need to be touched. I’ve heard it also touted as being much simpler to author, but I wonder about that; HTML isn’t hard to write, while implementing server-side image resizing and transcoding, intercepting headers, doing the negotiation and setting cache control is much harder for an HTML wrangler than writing HTML is. It also assumes everyone has full access to the server. Don’t forget that some uses of HTML (for example, ebooks) have no server.
But those are all for the future. What can you do now? Clever, but ultimately unsatisfying workarounds.
Alternatively, make your images into single-frame <video>s, and take advantage of media queries on the child <source> element to send differently sized images. Ian Devlin dreamed this up, and it’s evil genius – except that file sizes increase and <video> doesn’t have an alt attribute, so the “images” are therefore inaccessible.
A similarly inaccessible technique for webkit browsers is simply to use a <div> element instead of <img> and set an image-set background-image in CSS. Don’t do this; it’s inaccessible, and is single-engine.
The current best way is brilliant albeit somewhat hacky: Estelle Weyl‘s clown car technique. This uses a data-encoded SVG file, embedded using an <object> element. Unfortunately, there’s nowhere to hang alt text, and right-clicking to “save as” doesn’t behave as expected.
Images are central to the web; we need a declarative HTML method to achieve them in our multi-device world.
I’ve done my part in suggesting a strawman, and although cleverer minds than mine tell me it’s a bad solution, in a year and a half no-one has told me what a good one looks like.
Here’s your reading list for the next 2 weeks – I’m off to Google i/o where I’ll be speaking at the “Web Platform Fireside Chat” 3pm (to 3.40pm) on the Friday, Room 5. Come and say hi if you’re going to San Francisco (be sure to wear some flowers in your hair).
Some very meaty stuff this week, so it’ll last you 2 weeks (next week I’m in Las Vegas for Future Insights Live conference – use the discount code âBruceâ to get 10% off the ticket price).
HTML5 VIDEO bytes on iOS Mobile devices by Steve Souders: “Mobile devices ignore all values of PRELOAD in order to avoid high data plan costs, and instead only download the video when the user initiates playback … However, my testing shows that iOS downloads up to 298K of video data, resulting in unexpected costs to users.”
ptb/flexgrid: a flexbox-based CSS grid in 3.6k – “The flexbox layout is supported on Chrome, all versions of iOS, Safari 3+, IE 10+, Opera 12.10+, and Firefox 22+. Other browsers get the fluid Bootstrap 3 layout, except Internet Explorer 6 and 7 which use a fixed layout.”
jQuery 2.0 Released – “leaves behind the older Internet Explorer 6, 7, and 8 browsers”. I wonder if this, and Windows XP in its last year of Microsoft support, will give devs/ biz “permission” to stop supporting older browsers?
I Stand With Trolls – “Iâm calling out our culture of blaming the employer for the mouthiness of their employees in a personal capacity … Weâll end up with a Twitter full of teen-agers talking about their bowel movements and a million carefully curated corporate accounts.
The <hgroup> elements is removed from HTML 5.1. It was defined as “typically used to group a set of one or more h1-h6 elements â to group, for example, a section title and an accompanying subtitle.”
I shan’t be sad to see it go; in November 2010, I argued that it was too hard to grasp; if you want to indicate that something is a subtitle or tagline, you want to indicate that on the tagline itself, rather than on an element that groups a tagline and non-taglines.
More recently, Alex Russell and I had a conversation in which he argued that elements without a UI are likely to fail (more of that from him, later). I think he’s right in this case; <hgroup> is used solely to preserve the outlining algorithm which itself is esoteric.