Joschi Kuphal 吉
This. Say what you want, but — again — @adactio’s “A web for everyone” is just so much right up my alley. 💕 adactio.com/journal/10665
I gave the closing talk at the Render conference in Oxford a few weeks back. It was a very smoothly-run event, the spiritual successor to jQuery UK.
In amongst the mix of talks there were a few emerging themes. Animation was covered from a few different angles by Val and Sara. Bruce, Jake, Ola, and I talked about Service Workers and offline functionality. But there were also some differences of opinion.
In her great talk—I’m Offline, Cool! Now What?—Ola outlined the many and varied offline use cases that drove the creation and philosophy of Hoodie. She described all the reasons why people need the web; for communication, for access to information, for empowerment, and for love. “Hell, yes!” I thought.
But then she said:
So since when is helping people to fulfil a basic need, progressive enhancement?
And even more forcefully:
This is why I think, putting offline first in the progressive enhancement slot is pure bullshit.
Strong words indeed! And I have to say I was a little puzzled by them.
Ola had demonstrated again and again just how fragile the network could be. That is absolutely correct. All too often, we make the assumption that people using our sites have a decent network connection. That’s not a safe assumption to make.
But the suggested solution—to rely on technologies like local storage, Service Workers, or other APIs—assumes a certain level of JavaScript capabilities in the devices and browsers out there. That’s an unsafe assumption to make.
I remember discussing this with Alex from Hoodie a while back. I was confused by the cognitive dissonance I was observing. It seems to me that, laudable as Hoodie’s offline-first goals are, they are swapping out one unstable dependency—the network—for a different unstable dependency—a set of JavaScript APIs.
(I remember Alex pointed out that Hoodie was intended primarily for web apps rather than web sites, and my response—predictably enough—was to say “Define web app”.)
I think I understand why Ola reacted so strongly to the suggestion that offline functionality should be added as an enhancement. I’ve seen the same reaction when I’ve said that beautiful typography on the web is an enhancement. I think that when I say something is an enhancement, what people hear is that something is just an enhancement. It sounds belittling. That’s not my intention, but I can understand how it could come across like that. Perhaps this is one reason why some people have a real issue with the term “progressive enhancement”.
I wish we could make offline functionality a requirement. But the reality is that not everyone is using a browser that supports the necessary technology. I wish we could make beautiful typography a requirement. But, again, the reality is that there will always be some browsers or devices that won’t be capable of executing that typography. Accepting these facets of reality might seem like admissions of defeat, but I actually find it quite liberating.
In her brilliant talk at Render, Ashley G. Williams channeled Carl Sagan, quoting from his book The Demon-Haunted World:
It is far better to grasp the universe as it really is than to persist in delusion, however satisfying and reassuring.
That’s how I feel we should approach building for the web. Let’s accept that network connections are unevenly distributed. Let’s also accept that browser features are unevenly distributed. Pretending that millions of Opera Mini users don’t exist isn’t a viable strategy. They too are people who want to communicate, to access information, to be empowered, and to love.
Pointing out that you can’t always rely on client-side JavaScript shouldn’t be taken as an admonishment. It’s an opportunity.
Karolina Szczur wrote a wonderful piece on Ev’s blog called The Web Isn’t Uniform. She noticed how many sites—Facebook, AirBnB, Basecamp—failed to even render some useful information if the JavaScript fails to load. It’s a situation that many of us—with our fast connections, capable browsers, and modern devices—might never even notice.
It’s a privilege to be able to use breaking edge technologies and devices, but let’s not forget basic accessibility and progressive enhancement. Ultimately, we’re building for the users, not for our own tastes or preferences.
Karolina asks that we, as makers of the web, have a little more empathy. If the comments on her article are anything to go by, that’s a tall order. All the usual tropes are rolled out—there’s the misunderstanding that progressive enhancement means making sure everything works without JavaScript (it doesn’t; it’s about the core functionality), and the evergreen argument that as soon as you’re building a web “app”, that best practices, good engineering, and empathy can go out the window…
I strongly disagree that this has anything to do at all about empathy. Instead, it’s all about resources and priorities. Making a JS app is already hard enough, duplicating all that work so that it also works without JS is quite often just not practical.—Sacha Greif
But requiring that a site be functional when JavaScript is disabled, may not be a valid requirement anymore. HTML and CSS were originally created and designed for documents, not applications. Many websites these days should be considered apps rather then docs.—Dan Shappir
What you’re suggesting is that all these companies should write all their software twice, once in javascript and again in good ol’ html with forms, to cater to that point-whatever-percentage that has decided to break their own web browser by turning one of the three fundamental web technologies off. In what universe is this a reasonable request?—Erlend Halvorsen
JavaScript is as important as HTML. This is modern internet. If someone doesn’t have JavaScript, they should not be using the new applications that were possible because of JavaScript.—HarshaL
I am a web developer. I build web applications not web sites. What you say may be true for web sites with static pages displaying images and text.—R. Fancsiki
Ah, Medium! Where the opinions of self-entitled dudes flow like rain from the tech heavens.
While they were so busy defending the lack of basic functionality in all the examples that Karolina listed, they failed to notice the most important development:
Only couple hours later, thanks to @sstephenson, @basecamp is way more accessible without JS! That’s how you do it 👏 pic.twitter.com/cMsYGFhiKK
— fantastic ms. (@fox) April 23, 2016
Let’s build a web that works for everyone. That doesn’t mean everyone has to have the same experience. Let’s accept that there are all sorts of people out there accessing the web with all sorts of browsers on all sorts of devices.
What a fantastic opportunity!
This. Say what you want, but — again — @adactio’s “A web for everyone” is just so much right up my alley. 💕 adactio.com/journal/10665
Please read: A web for everyone – @adactio at his best 👏 adactio.com/journal/10665 #progressive #enhancement HT @jkphl
@lemontonic21 @ellenbauer @jkphl @adactio @btconf Yes, I was there! ;)
Well said, again. About building a web for everyone by @adactio adactio.com/journal/10665
A web for Everyone, now wouldn’t that be great. adactio.com/journal/10665
Love this article by @adactio! adactio.com/journal/10665 Go ahead and read. (And thank you @ThatEmil for sharing)
Is offline functionality an enhancement, a requirement or a required enhancement?adactio.com/journal/10665#progressiveenhancement
We need more of this. twitter.com/adactioJournal…
Another great article about how we should build for #web by @adactio adactio.com/journal/10665 #Webdesign #Webdev
The environment I’m in currently is so far from this, but I loved reading it. Inspiring from @adactio adactio.com/journal/10665
Jeremy once again highlights why we should focus on the “progressive” in progressive web apps. adactio.com/journal/10665
“Let’s build a web that works for everyone. That doesn’t mean everyone has to have the same experience.” adactio.com/journal/10665
As usual, I find myself in violent agreement with @adactio: “A web for everyone” adactio.com/journal/10665
Will one most likely have a shitty network, or #javascript disabled? Knowing your audience sure matters. twitter.com/adactio/status…
@adactio This is why I’m so excited about what we’re doing in Ember. FastBoot for JS-less folks, SW for everyone else—out of the box.
@adactio @misprintedtype @fox <333333333333333333333
@tomdale Yes! And I totally agree with you that the “out of the box” part is vital—defaults matter.
@adactio Are we really still discussing this in 2016? #tablesforlayoutalloveragain
@adactio — aww, shucks, thank you Jeremy! Also so much on point 👏
Wise words from @adactio on “offline first,” accepting the web as it is, and enhancements: adactio.com/journal/10665
“Let’s build a web that works for everyone.“ A primer for an inclusive web by @adactio 👏 adactio.com/journal/10665
@fox Thank you! I also cross-posted to Medium and I’m sure the comments I got there will surprise you not one bitmedium.com/@adactio/a-web…
@adactio popcorn-dot-gif
@adactio @misprintedtype @fox Impressive—though not surprising coming from you—how tactfully you tackled this topic. 👌
Let’s build a web that works for everyone. That doesn’t mean everyone has to have the same experience: adactio.com/journal/10665
If you care about building websites & “apps” that work for anyone, and not merely the tech-privileged, please read: adactio.com/journal/10665
“Let’s build a web that works for everyone. That doesn’t mean everyone has to have the same experience.” adactio.com/journal/10665
On the fantastic opportunity we have to build a web for everyone, from @adactio:adactio.com/journal/10665
@adactio @misprintedtype @fox the Sagan quote reminds me of my favorite inspiring words from Charles Eames youtube.com/watch?v=3xYi2r…
@adactio Follows up the battle for progressive enhancement with a cracking article. adactio.com/journal/10665
A web for everyone - great article supporting progressive enhancement adactio.com/journal/10665
Nailed it. @adactio has nailed it yet again twitter.com/adactio/status…
A web for everyone adactio.com/journal/10665 via @instapaper
@misprintedtype: “since when is helping people to fulfil a basic need, ‘progressive enhancement’?” adactio.com/journal/10665
Adactio: Journal—A web for everyone adactio.com/journal/10665
Adactio: Journal—A web for everyone adactio.com/journal/10665
“A web for everyone” - great piece on why offline-first is progressive enhancement and why that matters. twitter.com/adactio/status…
Yes! @adactio on why to “build a web that works for everyone.[]doesn’t mean everyone has to have same experience” adactio.com/journal/10665
Adactio: Journal—A web for everyone adactio.com/journal/10665?…
A web for everyone adactio.com/journal/10665 via @Inoreader
The web. Do the minimum, fast. Then enhance. It’s not rocket surgery. adactio.com/journal/10665
Still, and always will be, a very important part of the web and being a web developer - A web for everyone: adactio.com/journal/10665
Adactio: Journal—A web for everyone adactio.com/journal/10665
“Let’s build a web that works for everyone. That doesn’t mean everyone has to have the same experience.” adactio.com/journal/10665
Progressive Enhancement today: @jaffathecake #offlinefirst +@adactio Web For Everyone adactio.com/journal/10665 +js;dr tantek.com/2015/069/t1/js-dr
Excellent post by @adactio. Let’s build a web that works for everyone! https://adactio.com/journal/10665
Excellent post by @adactio. Let’s build a web that works for everyone! adactio.com/journal/10665
A web for everyone, by @adactio - adactio.com/journal/10665
A web for everyone adactio.com/journal/10665
“Let’s build a web that works for everyone.” Once again, count on @adactio to get it right: bit.ly/1XnI6VT
A web for everyone ow.ly/FtBA1007cFD by @adactio
“Ah, Medium! Where the opinions of self-entitled dudes flow like rain from the tech heavens.” @adactio at his best. adactio.com/journal/10665
You should read this: A Web For Everyone by @adactio adactio.com/journal/10665
i swear @adactio is my spirit animal. he’s so right here it hurts. “a web for everyone”adactio.com/journal/10665
‘Let’s build a web that works for everyone.’ adactio.com/journal/10665
Building a web for everyone - by Jeremy Keith adactio.com/journal/10665
It’s far better to grasp the universe as it really is than to persist in delusion however satisfying and reassuring. adactio.com/journal/10665
A web for everyone, via @adactio adactio.com/journal/10665#webdevelopment
A web for everyone adactio.com/journal/10665 via @instapaper
A web for everyone - addressing challenges to progressive enhancement adactio.com/journal/10665
An article that inspires me to check my assumptions is a valuable thing adactio.com/journal/10665 by @adactio
“Let’s build a web that works for everyone. That doesn’t mean everyone has to have the same experience.” - @adactio adactio.com/journal/10665
“Let’s build a web that works for everyone. That doesn’t mean everyone has to have the same experience.”adactio.com/journal/10665
A web for everyone adactio.com/journal/10665
Let’s build a web for everyoneadactio.com/journal/10665 Or, why you’re wrong to assume everyone must use JavaScript.
A web for everyone - adactio.com/journal/10665?…
A web for everyone.adactio.com/journal/10665