Reading List
The most recent articles from a list of feeds I subscribe to.
What's new in WCAG 2.2?
WCAG 2.2 is the next version of the Web Content Accessibility Guidelines, published 5 October 2023. It includes all of WCAG 2.1, minus 4.1.1 Parsing, plus nine new criteria. Of those, six are in Level A + AA, the most commonly tested combination of levels.
Let's look at how you could meet the new Level A + AA criteria (note: this is just my summary and interpretation, for the official specification and wording, refer to WCAG 2.2):
- Focus Not Obscured (Minimum) (2.4.11, AA): don't obscure the element that has focus (eg with sticky headers/footers or modals)
- Dragging Movements (2.5.7, AA): when some action in your UI requires dragging, ensure the same action can also be performed without dragging (with a “single pointer”). Example: a map that can be dragged to move around, but also offers buttons to move up, down, left and right.
- Target Size (Minimum) (2.5.8, AA): ensure that things you can click (or otherwise “point”, eg using pen, touch etc), are more than the specified minimum size, unless there's enough distance, it's inline or the small size is “essential”
- Consistent Help (3.2.6, A): if your page/app contains help options, they are in the same order across pages (unless user zooms/turns device; these kinds of user-initiated changes are excepted)
- Redundant Entry (3.3.7, A): avoid that users have to enter the same information twice, instead auto-populate or allow previous input to be selected. Some exceptions apply.
- Accessible Authentication (Minimum) (3.3.8, AA): if your auth requires a “cognitive function test” (user has to remember, manipulate or transcribe), offer a way without such a test, or allow for assistance (eg support password managers, don't block copy/paste)
One SC was removed: Parsing (4.1.1). It existed because assistive technologies had to parse HTML, but they no longer do so directly.
Notably, the new SC Focus Appearance (2.4.13), that was initially put in Level AA, is going to be Level AAA. It has requirements for what focus styles look like, regarding contrast, size of the contrasting area and contrast of adjacent colors (this one may be the most tricky and “at risk”, but there's a lot of examples in Understanding Focus Appearance)
An overview of the new criteria, including examples of how they are useful to real people can be found on What's new in WCAG 2.2.
Originally posted as What's new in WCAG 2.2? on Hidde's blog.
Re: AI for content creation
Morten described a possible feature, maybe even reality, in which AI-generated content is rampant. But when we start to employ machine learning for content creation, we start to regard content as a means more than an end. In that process, won't we lose what's worth caring about?
In his post, Morten explains he sees three types of AI-generated content emerge. The first two, AI-curated content (it helps assemble content and provide you with what it thinks is the most relevant), and AI-assisted content creation (it contributes to content creation) are a thing now. The third, AI-synthesised content, will likely become a thing in the future. Morten's post gives a great overview of what to expect.
It reminded me of a project I did in university about automating the arts. My conclusion: we can write code to generate creative works, but code or models can't capture intentions, experiences or beliefs. This requires human input, therefore creating art (or content) requires human input, was my reasoning. There are nuanced differences between AI, machine learning, big data and bots, but in this post I won't go into them.
When I want to find a recipe for pizza dough on the web, I would consider myself lucky if I could get ahold of a blog post from someone who cares passionately about the right kind of dough, who maybe ran an artisan pizza kitchen in Naples for the past 30 years or has a background in baking. ‘Dream on’, you think. Well, these people exist on the web and the web is awesome for being an open platform that anyone with a passion can write on. I don't want to find text produced just because someone saw “pizza dough” is a common search phrase and a potential for top result ad money to be extracted. The passion that drives them isn't the pizza dough—that's fine, but it makes their content less relevant to me. Similarly, I also don't want to find text generated by a machine learning model. It can't possibly bring the knowledge and experience I'm hoping for.
When I write an email or reply, I try to put what I want to convey into words that I choose. I might choose to include an inside joke that me and the recipient share, fit in an appropriate cultural reference, be extremely polite, or terribly rude. I mean, my intentions and attitude are in that interaction. I don't want Google or LinkedIn or others to suggest what to reply, to reinforce reminiscences of the historical content they trained their machine learning models with. It dehumanises my conversation. Its suggestion may or may not align with my intentions.
When I listen to music, I can be touched by the experiences and world views that inspired the artist. Whether you're into the Eagles, Eels or Ella Fitzgerald, their songs capture things that machine learning systems can't because the artists have attitudes. Robots don't love and they don't have opinions. Maybe they can come up with interesting rhythms and melodies, or utter sentences like “I love you”, but the association of their work with intentions and memories needs humans.
When I read a newspaper, the order of pages, the focus a layout provides and the choice of photography… they are decided by human beings who have a lot of experience. People who work as a journalist after being a professional sports player for decades. People who followed politics for decades and therefore understand which scandal is worth extra attention. People who can make bold choices based on their world views. Bots don't have world views. Algorithmic prioritisation of content isn't as good as prioritisation by humans, even if it gets close. See also algorithmic timelines on social media versus human-curated lists and contextualisation.
When I have a consumer issue, I want to talk to a human representative of the company. Someone who has the authority to make decisions. Who can take us on the shortest path to a mutually satisfactory solution. Did you ever see a chat bot provide more than a repeat of the data it has been fed? Did you see a chat bot make enquiries with empathy? Lack of empathy isn't a bug in bots that we just haven't fixed yet, it arguably isn't empathy if it isn't human-to-human (ok maybe animals can be part of this equation).
All these examples lead me to think: the human side of data isn't measurable or computable. The human side of art, content or communication is not just a different side of the same coin, it's a bigger coin. There is more to reality than data can capture, like lived experiences from actual people and intentions and beliefs. Propositional attitudes that robots can only pretend to have.
Basically, I'm worried about overestimating how many human capacities machine learning can take over. At the same time, I don't think machine learning is useless. Quite the opposite, it is fantastic. I love it that computers are getting better at automated captions, translation or even generating images based on prompts. The latter may create a whole new level of art where artists use it as a material for their creations (see also AI is your new design material by Josh Clarke). Medical applications where machine learning notices abnormalities that a human might miss. Audio recognition engines that will tell you what song is playing. Email spam filters that save us all a lot of time. It's all super valuable and genuinely impressive. And a lot of these use cases don't need lived experiences, intentions or beliefs to be incredibly useful.
Originally posted as Re: AI for content creation on Hidde's blog.
How I use Twitter
I like Twitter. When I joined just over 15 years ago (!) I genuinely did not expect the hype to last more than a year. But what did I know? It still does a good job of letting me follow very short content from a list of people I pick. I like Twitter as a remote worker. As someone with many interests. I love being able to interact directly with people whose work I look up to, people who say interesting things or post excellent dad jokes. People with specific areas of interest that I want to stay informed about. People whose books, music, journalism or conference talks I enjoyed.
Twitter is great for all those things, but it also has downsides. I'm sure those who read this are aware… it's a walled garden, the company has been too slow banning certain violence inciting politicans, there is lots of harrassment, there are still massive spam and bot issues, the obsession over metrics like follow counts, the verification system that seems biased (like, why is Jen Simmons not verified?), the self proclaimed experts, its anxiety inducing effects and so on. I have tried switching to alternatives that work on solutions for some of those things, but always returned for various reasons. I guess I do like it on Twitter.
Tweaking Twitter
Though I net enjoy my time on Twitter, I would have left years ago if I couldn't make these modifications:
- 'Current topics' hidden, when I use the web version (using Better Twitter). Where I live, this section is a gateway to mostly fascist voices, terrible takes and disinformation . It seems bad actors simply take over any popular hashtags, so this may be hard to fix, but for me it means I don't want to see it.
- Ads blocked: because they aren't I'll admit I don't believe there is such thing as relevant ads. Even people who do will likely agree that mismatches happen, in my case crypto ads served to me, a forever crypto sceptic. Please let me pay for the service. On desktop I use an ad blocker, on mobile a paid app that has no ads.
- Tweets auto-deleted: maybe I would like an archive of my thoughts, but not one that is public, on a centralised platform. It seems like too much risk to keep them around. I use Semipheral to do this somewhat selectively.
- People auto-muted: there isn't sufficient time in life to interact with trolls, bullies and cryptobots, tools like Blockparty are instrumental to automating some of the muting and blocking that makes Twitter more liveable.
- Time limited: I'm not always great at this one, but I try to avoid looking at Twitter most of the day, this platform is best enjoyed for a limited amount of time per day. I've sometimes done multi-week breaks too.
Tweaking my tweets
I also try to be better at tweeting.
As a rule, I try not to complain about products or services. If a train company didn't treat me well, that's not my followers' problem. In general, I try to limit complaining. I don't find it very easy, as I love complaining, but I am convinced it doesn't contribute that much.
I also try to ensure my timeline is accessible. That means I add alternative text with every image and don't retweet images without alternative text. I also avoid ASCII art memes and bold or italic unicode characters (like the ones Twitalics converts to, a tool that actually comes with an accessibility warning). Lastly, I capitalise usernames and hashtags so that screenreaders are more likely to pronounce them in a way that makes sense, for instance #CSSDay instead of #cssday. This doesn't always make a difference, but sometimes can,
like in this example where the capitals cause a pause between CSS and Day where I tested.
Another thing I recently tried to do more of is whenever I feel I have something to say, I plan for writing it on this blog and just linking out to it from Twitter. That way I can mitigate the walled garden issue a bit, by putting my content in my a garden that I control.
I'm sure there are lots of ways to use Twitter that I haven't made a habit (like, I hear some use lists extensively). How do you use Twitter?
Originally posted as How I use Twitter on Hidde's blog.
Keyboard shortcuts need modifier keys
One way to make a UI on the web keyboard accessible is to ensure parity between input methods: that things that can be clicked, can also be activated with just a keyboard. In addition, you can also introduce keyboard shortcuts for common actions. If you do, ensure they require a modifier key, like ⌃ Ctrl
or ⌘ Cmd
.
Understanding 2.1.4
In WCAG, the standard used to check if websites are accessible, there is a specific Success Criterion for keyboard shortcuts, which got added in version 2.1. From the criterion text:
If a keyboard shortcut is implemented in content using only letter (including upper- and lower-case letters), punctuation, number, or symbol characters, then at least one of the following is true: (…)
In other words: do not use keyboard shortcuts that are just a one letter character (or multiple of those). After the quoted part, exceptions are listed where such a keyboard shortcut would be ok, we'll get to those later.
Let's first try and get a little more explicit. Basically, you could do shortcuts that are a single key, like, ‘press N
to open a new document’. Or your shortcuts could be in the form of ⌘ Cmd + something
or ⌃ Ctrl + something
, requiring a modifier key. This Success Criterion basically says ‘don't do the single key thing, always have a modifier‘ (again, with exceptions, see below).
This criterion removes frustration for speech input users, who control their screen with their voice. Their software listens for words or sentences, but also for shortcuts. The issue is that shortcuts that don't use modifier keys could get activated up when the user didn't mean to.
An example from the Understanding document:
For example, Kim's email software uses common keyboard shortcuts to navigate ("k"), archive ("y") and mute messages ("m"). Her coworker enters her office and says "Hey Kim" and her microphone picks that up. The Y of "hey" archives the current message. K in "Kim" moves down one conversation and M mutes a message or thread.
(From: Understanding 2.1.4, Intent; adapted to be shorter)
The criterion also improves the experience for people who are prone to accidentally hit keys, like users with fine motor skill related impairments.
So basically, the issue with these “unmodified” shortcuts, is that it is harder for software to establish if the user actually wanted to trigger the shortcut. The use of modifier keys is an established pattern that captures this user intent, you would not press those and another key accidentally.
What about /
?
When I was testing a website recently, I found that /
was used as a keyboard shortcut. I wasn't a 100% sure if this was a WCAG failure per se. The Success Criterion text says keyboard shortcuts should not consist of just letter, punctuation, number of symbol characters. Is /
any of those four things? Letters and numbers I know, but what exactly does the full set of punctuation and symbol characters look like? Why doesn't WCAG include a list?
Well, there are two answers to that:
- it's complicated; there are lots of languages and writing systems and it would be easy to forget a punctuation or symbol character… or even a letter of number, CJK languages have tens of thousands of characters
- what is really meant here is any character that prints something on the screen
That last answer is what Marjon from the accessibility consultancy Firm Ground replied when I asked about my confusion on Twitter. She linked to the WCAG Technique document (yup, not normative), where “all number, letter, sign and punctuation keys” are summarised as “printing characters”. That checks out. I'll take this interpretation: /
is a printing character and should not be used as a shortcut on its own.
Exceptions
I promised to get back to the exceptions that are in the Success Criterion text. It says you can use single characters without modifier keys as shortcuts:
- if it the shortcut can be turned off in settings
- if the UI lets users remap the shortcut… so it's
/
by default, but users can go to the settings of your app and remap it to be⌃ Ctrl + /
- if the shortcut works only when the relevant component has focus, for instance when you're in a countries
select
menu and press theT
to jump straight to Taiwan (that way, it doesn't interfere)
The remapping option can get tricky if your interface has a lot of shortcuts. The popular email web app that allegedly was used as inspiration for this Success Criterion has a very large number of unmodified shortcuts, so many that it runs into the case where there aren't enough characters to remap them all.
Summing up
Keyboard shortcuts are most accessible when they include modifier keys like ⌃ Ctrl
or ⌘ Cmd
, so that they don't frustrate voice input users and users with fine motor impairments. If your interface has shortcuts that are just one or more “printing characters”, any character that prints something on the screen, best combine them with modifiers.
Originally posted as Keyboard shortcuts need modifier keys on Hidde's blog.
Individual climate action: small steps matter
We need bigger steps to combat the climate emergency, but small steps matter too. This week Dave shared he feels climate action falls on consumers too much, rather than large companies and governments. Michelle responded that as tech workers, “we have the power to push for for change”, that we can “extend reach of our actions far beyond ourselves”. Matthias added that we all do something, “even if it feels like we are the only person doing it, it will make a difference.” Great posts.
Like Michelle and Matthias, I feel we can make a difference. I agree that we can use our privilege as tech workers, and that we can do individual things, even if small. I also agree with Dave—companies and governments need to facilitate these individual actions much better. Companies could provide more sustainable defaults, governments could have more tax incentives for sustainability. I say “more”, as both of these things continue to happen and the pace increases. Eating plant-based has been challenging for years, today it is trivial, even at fast-food chains known for their meat. The European Commission has negotiating climate action too slowly for decades, but recently launched a Green New Deal, spending trillions of euros on concrete targets (see also Delivering the European Green Deal).
Like most people, I'm a hypocrite when it comes to climate action. I haven't eaten meat for decades, but hey, I eat eggs and dairy sometimes, which can be as bad in terms of climate impact. I use trains for transport mostly, but hey, I still fly for work and family visits sometimes, multiple times a year. I try and buy stuff secondhand, but hey, my current shiny phone was bought new. I buy most produce directly from local farmers through Rechtstreex, but hey, I occassionally enjoy avocados and bananas that are flown in from very far away. I don't use plastic bags, but I gave my children diapers made of plastic.
What about governments? The Dutch government recently announced to invest billions in expanding the power network so that more solar panels can be connected, but they also still subsidise gas and oil. They have started charging companies for their CO2 emissions, but currently still charge lower VAT on meat than on plant-based alternatives.
Or companies? Shell will build Europe's biggest hydrogen plant, which is nice, but I don't even want to get started on how they've undermined climate agreements for decades and continue with fossil fuels on an enormous scale (Follow This buys Shell shares to then use shareholder privileges to demand greener policy).
Still, like Matthias said, we need to look at the good things that are happening, and encourage more good things. From governments, from companies and from ourselves. Small steps matter. In a country with millions of voters, one vote seems like nothing. But each vote ends up as a part of the election results. If we all stay home, nothing happens.
It may seem rational to find hypocrisy in my actions, or the government's actions, or those of companies. You'll probably find stuff quickly. But even if I'm inclined to, I don't want to be a cynic about climate action. I'd rather err or the side of being overly naive. Sometimes change is slow and complex, I want to keep the focus on making it work, not on looking for hypocrisy. So I'll continue to do my things. I'll also continue to expect companies and governments to act. In fact, they need to do more and do it faster, and this will impact what I buy and vote. It adds up if all of us buy and vote the right things, especially in countries where small parties can have impact.
Originally posted as Individual climate action: small steps matter on Hidde's blog.