How to hang a painting from two points, where removing either point causes the hanging to fail. Weird puzzle, excellent explanation of the fundamentals of knot theory in mathematics.
I'm still intending to add a
/feeds page to this site at some point (see Making RSS more visible with slash feeds) and now Jeremy has put together an implementation I really like. Jeremy's idea of adding a blog roll of the feeds he subscribes to is a neat touch too, and the functionality to subscribe to individual tags is * chef's kiss * I'm not sure how Gatsby would cope though...
At this point, surely access to the internet is at least a utility, if not a human right. Olu has put together a brilliantly reasoned argument for just that, and how to go about building for a world where not everyone has access to digital resources equally.
Not having access to the internet is expensive, locking you out of essential services and a surfeit of helpful information.
It's far from being a "developing nations issue" either (though, to be clear, it is a huge issue in a lot of developing countries). In the UK, 10% of adults were considered to be "digitally excluded" in 2018; and yes, this is an issue which disproportionately affects women, people of colour, and people living with disabilities, whilst richer households are more likely to benefit from the web.
Marginalized people with insights to share aren’t hard to find when you start listening. They are your next users, your future developers, your fledgling marketing team. Excluding them reduces your options, your appeal, and your breadth of ideas.
Seek a broad range of opinions; hire inclusively; be proactive about improving and advocating for diversity; test your tools with a diverse audience in mind (screen readers, Pa11y, axe, Lighthouse, etc.); where possible, provide non-digital avenues to your services as well.
Web accessibility is not an optional extra. What inclusion looks like in practice will depend on your products, your users, and what you intend to achieve, but for it to be real and meaningful in any context, it cannot be an afterthought.
The fact that this kind of engineering is commonplace on the internet doesn’t make it OK. It just highlights that the way we have built the web is fundamentally broken.
Put another way: what kind of decisions does your technical stack make about who’s allowed to contribute to the front-end?
Have design systems helped bridge the gap between designers and developers? Probably not. Is part of that potentially the increasing complexity of frontend build tooling? Possibly. Design and development tooling does impact workflows on both sides of that (probably problematic) divide.
I've long wondered whether there were any particular gotchas with React when it came to using the
prefers-reduced-motion flag. Well, Josh has written up the answer (and, as usual, extremely well). The short is: yes, probably. It's best to assume no animations (which I think is a solid position regardless of tech stack), which means legacy browsers are catered for as well. He also points out that global overrides in CSS can cause issues with JS libraries like React Spring, which is worth knowing.
To determine the flag in JS you can use the
window.matchMedia(prefers-reduced-motion: no-preference) (Josh has a full example of the code involved, including with event listeners to catch a user that alters the OS accessibility settings after already landing on your site, a very nice touch). He's even converted that logic into a hook 🤩 plus outlines how it might differ for SSR frameworks like Gatsby, which highlights that hydration can be tricky here (possibly another argument for removing React from the client-side if possible).
It's also interesting to see that Apple came up with the
prefers-reduced-motion flag and that it's now supported pretty much everywhere, which is fantastic news.
For some folks, motion can trigger physical symptoms like nausea, dizziness, and malaise. I very much don't want to cause any of those symptoms!
A quite frankly brilliant concept design for a "Mea Culpa feature" on Twitter. The idea: let users add a flag to their own tweets admitting mistake:
Adding a "mistake" notice would trigger the tweet to reappear in people's timelines that already saw it, helping the "retraction" gain ground, and stop new users from liking or commenting, de-amplifying the message. Nick also puts forward a suggestion for a "forgive" interaction that would appear under tweets with Mea Culpa notes applied, so that users can receive positive reinforcement as well. I think it's all great and a fantastic idea for humanising social media, building a UX that drives more positive discourse and more civil interactions.
A frankly damning look inside the systems meant to hold the NYPD to account, centred around a horrific tale of racial profiling within Brooklyn on Halloween. How this system exists in the 21st Century is beyond belief. The school ID with a "know your rights" checklist on the back is just...😡
The Climate Strike License is an attempt to block companies that profit from climate change using open-source software. It's certainly an interesting approach, though I've no idea how enforceable it would be (and I don't know if you could retroactively apply this license to existing OSS).
I've watched the Whimsical Web slowly grow over the last few days and it's been excellent. There's a lot of sites (and developers/designers) that I already know on the list but plenty more I would never have come across. From the brilliant connect-the-dots on Timo Becker's site, to the utter madness of Luke Towers' chaos button, it's great fun.
An IndieWeb alternative to Instapaper, Pocket, etc. that lets you save web pages to read later via your own microsub server.
Recoil is a new state management library from Facebook (though note this isn't an official React project). Doesn't seem to do anything too fancy, but does use a similar mental model to hooks and feels particularly easy to grok. Nice writeup with examples.
A neat little tool that can allow you to annotate a web page, comment on annotations, and then save/share/export that information. Spotted in an IndieWebCamp show-off session where one user has combined it with IFTTT and Micropub to push annotations directly to a notes section on their site. Unclear how well supported it is.