Prioritizing users in a crisis

Creating a fast and accessible pandemic response site

https://covid19.ca.gov

Accessibility is legally required for good reasons

Linked tweet from @LareneLg: "Today my dad cried over the phone, he wanted one week were he could use his computer without my help. He's blind. Each inaccessible webpage tells him, "you aren't welcome in this world." If you don't know whether your website or app is accessible it's not. Start learning.

Some alpha.CA.Gov design principles

  • Start with user needs
  • Iterate — then iterate again
  • Make it accessible and inclusive
  • Make things open: It makes things better
  • Optimize performance

Alpha team formed 12/2019

Built 17 new services on alpha.ca.gov

Screenshot of tap water quality checking tool
Screenshot of find food banks near you tool

Stood up V1 covid19.ca.gov in 4 days

screenshot of old version of covid19.ca.gov homepage
screenshot of current version of covid19.ca.gov homepage
19,238 commits on github

Still iterating

Immediate traffic spikes

100,098 active visitors right now

Ongoing need

20 million user sessions

Fast, accessible, readable

  • Loads in 2 seconds on 3G with a Moto G4
  • Grade 9 or lower Automated Readability Index
  • Lighthouse Performance, Accessibility scores: 100
Lighthouse scores showing 100 across the board

Human Translations

Language pulldown screenshot showing 7 language options

Open source

static site generator

11ty logo

Static Site generation in practice

  • Reliable
  • Scales smoothly
  • Lower cloud costs
  • Less infrastructure to manage
  • You can use them without sacrificing anything
    • We retain the convenience of WordPress by using it headlessly for authoring, regenerating the static artifact each update
    • We use web components and FAAS APIs for realtime interactive widgets

The 11ty community

Description of the fabulous performance scores in the 11ty community

Fast on my machine

Why so dramatic about performance?

Performance is an equity issue

  • Data transfer costs people money
  • Devices with less capable CPUs take a lot longer to parse javascript even after it is downloaded so some users are staring at a white screen forever waiting for your single page app to work
  • > 9% of Californians are accessing the internet on 3G
  • Unlimited data plans throttle users at bandwidth caps
  • Conditions vary for everybody, I used to commute on BART and parts of that journey I really appreciated sites that made an effort to be fast

Performance is good for the bottom line

  • Speed is a search ranking factor
  • Speed increases user satisfaction
  • Speed impacts conversion levels

Solutions

  • Bake performance, a11y and readability into your processes so you are aware of tradeoffs
    • Make temporary compromises when necessary but treat them as bugs
  • Challenge your team to increase lighthouse scores. Putting up points is fun!
  • Run audits on code changes
  • Set performance budgets in your build tools
  • Run audits regularly against production
  • Keep measurement history for review

Tools

YES!

There is a conspiracy to make your site slow

Forces at work

  • The constant need for more features immediately
  • Surveillance
    • You can recreate a user session video by watching every cursor move and keypress in javascript. These things are costly, use them sparingly if they are helpful.
  • Careless install instructions
    • Does this large script really need to be added in a render blocking manner?
  • The developers
    • Yes, I am part of the problem too, always trying to find a way to fit in some cool 3D dataviz

Don't slow down

  • Know your audience
  • Keep measuring and raise your team's awareness of the results
  • Cover the basics then do dope stuff

Readability

  • Reduce cognitive load
  • Increase effectiveness
  • Include all literacy levels

Tools

  • hemingwayapp.com: realtime hints
  • npm: unfluff & readability-scores

Experiment warning

screenshot of cagov.github.io/leaderboard showing many sites

We're hiring

More info

Prioritizing users in a crisis

By Aaron Hans

Prioritizing users in a crisis

Creating a fast and accessible pandemic response site covid19.ca.gov

  • 343