Journal tags: readwrite

2

Read-only web apps

The most cartoonish misrepresentation of progressive enhancement is that it means making everything work without JavaScript.

No. Progressive enhancement means making sure your core functionality works without JavaScript.

In my book Resilient Web Design, I quoted Wilto:

Lots of cool features on the Boston Globe don’t work when JS breaks; “reading the news” is not one of them.

That’s an example where the core functionality is readily identifiable. It’s a newspaper. The core functionality is reading the news.

It isn’t always so straightforward though. A lot of services that self-identify as “apps” will claim that even their core functionality requires JavaScript.

Surely I don’t expect Gmail or Google Docs to provide core functionality without JavaScript?

In those particular cases, I actually do. I believe that a textarea in a form would do the job nicely. But I get it. That might take a lot of re-engineering.

So how about this compromise…

Your app should work in a read-only mode without JavaScript.

Without JavaScript I should still be able to read my email in Gmail, even if you don’t let me compose, reply, or organise my messages.

Without JavaScript I should still be able to view a document in Google Docs, even if you don’t let me comment or edit the document.

Even with something as interactive as Figma or Photoshop, I think I should still be able to view a design file without JavaScript.

Making this distinction between read-only mode and read/write mode could be very useful, especially at the start of a project.

Begin by creating the read-only mode that doesn’t require JavaScript. That alone will make for a solid foundation to build upon. Now you’ve built a fallback for any unexpected failures.

Now start adding the read/write functionally. You’re enhancing what’s already there. Progressively.

Heck, you might even find some opportunities to provide some read/write functionality that doesn’t require JavaScript. But if JavaScript is needed, that’s absolutely fine.

So if you’re about to build a web app and you’re pretty sure it requires JavaScript, why not pause and consider whether you can provide a read-only version.

Huffcast

Tony recently remarked on Twitter:

Readwriteweb write the most thoughtful intelligent pieces around, and it’s worryingly indicative of our culture that they aren’t read more

I have my own, somewhat selfish, reason to praise this particular tech site. ReadWriteWeb’s lead writer, Marshall Kirkpatrick, is a big fan of Huffduffer. What an astute young man! He even made a screencast for Read Write Web.

Huffduffer Screencast

Seriously, I’m pleased as punch with this. Marshall totally gets it. When he mentioned on Twitter:

Every time I find a need to use @huffduffer I am happy happy happy…

…I thanked him and said:

Increasing happiness is the goal of that site.

…which is true. If only happiness weren’t such a damned difficult metric to track. But seeing someone else make a top quality screencast explaining the site is a pretty great indication that I’m doing something right.

Mind you, it does prompt me to slap my forehead and ask why didn’t I think of making a screencast?