Dispatches From The Internets

When JavaScript Fails

This piece does a great job of relaying the reality of JavaScript failures on the web and makes a strong case for why progressive enhancement is such an important approach. Jason’ illustrations of who is affected by JavaScript failures and how are particularly compelling.

I also love how succinctly he nails this section:

So, if progressive enhancement is no more expensive to create, future-proof, provides us with technical credit, and ensures that our users always receive the best possible experience under any conditions, why has it fallen by the wayside?

Because before, when you clicked on a link, the browser would go white for a moment.

JavaScript frameworks broke the browser to avoid that momentary loss of control. They then had to recreate everything that the browser had provided for free: routing, history, the back button, accessibility features, the ability for search engines to read the page, et cetera iterum ad infinitum. Coming up with solutions to these problems has been the fixation of the JavaScript community for years now, and we do have serviceable solutions for all of these — but all together, they create the incredibly complex ecosystem of modern-day JavaScript that so many JavaScript developers bemoan and lament.

All to avoid having a browser refresh for a moment.




PWA for Beginners

Some of my colleagues at Microsoft have put together a 17-part video learning course on Progressive Web Apps. It’s got a ton of great material if you’re looking to get started.


Redefining Developer Experience

This is a rather lengthy piece on developer experience from Cole Peters (who works on the Enhance framework). He makes some excellent points, including this one:

I believe ‘good developer experience’ needs to be re-imagined as the enabling of developers to deliver reliable and first rate end user experiences — for as many users as possible, and for as long as possible. With this goal in mind, I think we’d be hard pressed to find a better starting point than the fundamentals of the web platform — that is, web browsers, HTTP, HTML, CSS, and JavaScript. These technologies have existed for decades in a near total state of backwards compatibility, while also consistently evolving to offer web developers ever more powerful techniques to deliver exceptional user experiences.



NHSD Apply for Care ID alpha assessment

I love that the UK government is making digital product assessments, like this one for the in-development Care ID Assessment tool, public. There’s a lot to be learned from critiques like this.

In particular, I was impressed with how they held the line on the importance of robustness in tools like this (from the “Choose the right tools and technology” section):

Before their reassessment, the team needs to … allow users who have issues using services with Javascript or have Javascript disabled. The team must build services for all users and cannot depend on client-side Javascript.

Which yielded results in their reassessment:

The panel was impressed that:

  • the team has worked around the limitations for progressive enhancement of the service, resulting from the use of a serverless Single Page Application (SPA) architecture, which is a historical technology choice inherited from NHS login the team has ensured the service now works for all applicants without requiring JavaScript to be enabled
  • the team has used the third party Paycasso identity verification mobile application to automate many parts of the process for validating an identity document, presenting a significant improvement versus the current remote identity check process via video link
  • the team has used the no JavaScript route through the service which re-uses the business logic for the SPA route despite the UI forms being separately maintained for both routes

The assessment also provides guidance for further improvements to be made. Love this!


ChatGPT: New AI system, old bias?

The story of Karen Hunter asking ChatGPT to discuss whether Bessie Smith influenced Mahalia Jackson is pretty telling. As ChatGPT was not fed information that related to the connections between the musical careers of these two influential Black women, it could not shed any light on how they were connected. It could only offer snippets of their biographies, which it gleaned from Wikipedia (or similar).

Despite their seemingly magical “knowledge,” Large Language Models (LLMs) are only able to respond with things they know (or think they know). They aren’t able to create novel connections between subjects in the way that people can.

That’s why it’s absolutely critical that LLMs be trained on content from a variety of sources, perspectives, etc. A LLM is only as good as the data it’s fed. To create truly powerful, creative, and exhaustive LLMs, we need to train them on content created by people whose voices aren’t often centered and subjects that extend far into the long tail.


Disability, Bias, and AI

This is a foundational paper concerning AI and its potential to help and harm people with disabilities. There are a lot of choice quotes in here, but this one really sums up the importance of an intersectional approach to AI:

Integrating disability into the AI bias conversation helps illuminate the tension between AI systems’ reliance on data as the primary means of representing the world, and the fluidity of identity and lived experience. Especially given that the boundaries of disability (not unlike those of race and gender) have continually shifted in relation to unstable and culturally specific notions of “ability,” something that has been constructed and reconstructed in relationship to the needs of industrial capitalism, and the shifting nature of work.


Microsoft’s new Inclusive Design toolkit is designed for the brain

The Microsoft Inclusive Design Toolkit has gotten an update that incorporates cognition, which is awesome! It puts forward three new principles:

  1. Understand the user’s motivation, and the goals and tasks they are trying to complete.
  2. Discern the cognitive load required to reduce that mismatch.
  3. Co-create the final product with a diverse community of people across the spectrum.

It’s so great to see this seminal resource continuing to evolve.