Proposing CSS input modality

:focus'ing on users.

Image of a camera lens artfully out of focus

Editor’s note: The author would like to acknowledge her co-author, Brian Kardell, who contributed many insights to the ideas presented here, along with a substantial number of the words.

Web developers and web standards authors alike strive to live up to the promise of “universality” — the idea that the web should be available to all. This concept drives many innovations in web technology, as well as being fundamentally built in to the philosophy of the open standards on which the web is based.

In order to achieve this, we frequently find that having some carefully chosen information about how the user intends to view the content (a concept we’ll refer to in this article as “user context”) allows web developers to create more flexible and useful user experiences. In this post, we’ll lay out a case that it’s time to expand our view of user context to include the concept of modality (how the user is interacting with the page), but before we flesh that out, let’s take a look at “user context”.

Read more…


The Web welcomes

Access not just to content, but technology.


“They learn a bit of Web stuff, and the next thing you know they think they understand programming.” I’ve heard variations of that lament for the past two decades. I’ve heard it less lately, because so many recent computing professionals built their technical careers from that bit of Web stuff.

The Web succeeded in large part because it was the easiest way for people to create electronic content and share it. Indexes and search engines made it easier to find that content. While administering files on a server and learning HTML weren’t trivial, they were much more approachable tasks than creating and distributing traditional (now largely considered desktop or native) applications.

For the most part, they still are easier.
Read more…


JavaScript shares its ubiquity

WebAssembly changes the rules of the JavaScript game.


I’ve never seen a technology lay down its primary advantage and prepare to hand over its ubiquity. I’m proud of JavaScript for doing this, and I’m sure that in the long run this will be good for the Web, but in the meantime I’m wondering where WebAssembly will take us.

Brendan Eich’s announcement of the effort makes clear that this builds on the earlier asm.js (and Google’s similar PNaCl), a highly efficient JavaScript subset that compilers of other languages could target. Eich enjoyed using Unreal Engine for demos of the speed asm.js could provide, but compiling to JavaScript, even weird JavaScript, still needed to go through a JavaScript parser. (Other approaches compiled to more comprehensible but less optimized JavaScript.)

WebAssembly – wasm – skips that final step, producing a binary format, technically a compressed AST encoding. Unless you’re going to be building compilers, you can compare wasm to a bytecode system. There is a text format for debugging, but the binary emphasis yields substantial extra speed as it skips parsing and minimizes decompression.
Read more…


Defining front-end architecture

Raising the banner for a new discipline.


In this excerpt taken from the upcoming book, Front-End Architecture: A Modern Blueprint for Scalable and Sustainable Design Systems, Micah Godbolt details the history of this new discipline and explains why it is such a vital role to embrace in our industry.

With the evolution of the web came changes to the roles of the modern web team. We went from a small group of generalist webmasters to a team of talented specialists. As each of these specialties developed, and members became more proficient in them, the web began to form a new set of roles… or disciplines.

Read more…


The power of connection

URLs are the Web's unique superpower.

Over the past two decades, the heart of the Web has come to seem ordinary, forgettable. Some software has gone so far as to bury it and make it invisible, but it still worked its magic behind the scenes. As competing systems have made it disappear, though, absence has made many hearts grow fonder.

The humble URL is pretty ugly. The Web’s creator, Tim Berners-Lee, was embarrassed that people looked at them. It’s plain text, the computing interface that came right after punchcards and switches. The openings are always verbose, with a long “http://” (or similar) preceding the actual place you want to go. Excessively abstract debates about URIs aside, automated systems’ fondness for opaque identifiers has made many URLs hideous piles of characters that only a lookup table could enjoy. (Are QR codes even uglier?)

Even done badly, however, the URL is perhaps the most powerful innovation in networking history. While prior systems (IP addresses, DNS, and similar) had let us connect computers, URLs let us connect people’s creations. URLs let us share other people’s ideas, and promote our own ideas. The power to say “this bit of text will (mostly) reliably get you this content today” is a basic feature fundamental to the Web’s triumph.
Read more…


Add depth to your project with practical web audio

Enhance the user experience with the thoughtful use of sound.


There is little debate that Web Audio is cool. Take for example Stepkit by Brent Jackson (embedded below).

It’s definitely a fun toy to play with, but most of us probably couldn’t think of how this might be relevant to our jobs. When I presented 8-bit game music with the Web Audio API at last year’s Fluent Conference, I readily admitted that it was intended to be purely fun rather than practical.

Recently I explored the idea of adding audio to web apps, but I think the big problem isn’t that web developers were unsure how to add audio to their app, but that they don’t think they should add audio to web apps. In this article, I’d like to make the case that you should be considering audio when designing your web application user interface.

Read more…