- The hidden world of aria-hidden – Steveo Faulko reports “The effects of aria-hidden are not consistent across browsers and screen readers”. Seems like a Chrome bug to me.
- Meet :has, A Native CSS Parent Selector (And More) (and Can I :has() – Uncle Brian explains this new exciting CSS thingy)
- Optical size, the hidden superpower of variable fonts – with mushroom examples.
- CMA to have key oversight role over Google’s planned removal of third-party cookies, also Privacy Sandbox – CMA oversight role and how to engage – video.
- Free, open source health icons
- Creating Accessible React Native Apps – some useful actionable advice here
- What my decade at Google taught me about Africa’s tech future
- My Life in the Apple Ecosystem – “But change is coming, whether or not Apple wants it. And boy, Apple deserves having those changes forced onto it, given how badly they’ve treated their developer community for so many years.”
- Huawei officially launches Android alternative HarmonyOS for smartphones – Yay, another not-Android (and not-Windows and not-Tizen and not-Ubuntu)
Archive for the 'accessibility web standards' Category
I’m doing some accessibility testing on a React Native codebase that uses Expo during development. If you’ve done something seriously wrong in a previous life and karma has condemned you to using React Native rather than making a Progressive Web App, Expo is jolly useful. It gives you a QR code that you can scan with Android or iOS to ‘install’ the app on your device and you get live reload of any changes. It’s like sinking in a quagmire of shit but someone nice is bringing you beer and playing Abba while it happens. (Beats me why that isn’t their corporate strapline.)
Anyway, I struggled a bit to set it up so here are some random tips that I learned the hard way:
- If your terminal yells “Error: EMFILE: too many open files, watch at FSEvent.FSWatcher._handle.onchange (internal/fs/watchers.js:178:28) error Command failed with exit code 1” when you start Expo, stop it, do
brew install watchmanand re-start Expo. Why? No idea. Someone from StackOverflow told me. Most npm stuff is voodoo magic–just install all the things, hope none of them were made by in Moscow by Vladimir Evilovich of KGB Enterprises, ignore all the deprecation warnings and cross your fingers.
- If you want to open your app in an iOS simulator, you need xcode and you need to install xcode command line tools or it’ll just hang.
- Scrolling in iOS simulator is weird. Press the trackpad with one hand and scroll with other hand. Or enable three finger drag and have one hand free for coffee, smoking or whatever other filthy habits you’ve developed while working from home.
- If you don’t want it, you can turn off the debugging menu overlay.
- If you like CSS, under no circumstances view source of the app running in the browser. It is, however, full of lots of ARIA nourishment thanks to React Native for Web.
Who knows? One day, Apple may decide not to hamstring PWAs on iOS and we can all use the web to run on any device and any browser, just as Sir Uncle Timbo intended.
- Building a resilient frontend using progressive enhancement (gov.uk) Government web sites need to be resilient and be available to all. That’s why they use HTML and JS properly. You should too.
- Which Three Birdies?™©® – Birds! Maps! APIs! Open Source! Put ’em together and what do you get? Finally, a solution for encoding a location into 3 birds, and open sourced as a gift to the world from Stuart Langridge and me!
- Chromium spelling and grammar features – “My first project has been implementing the new CSS spelling and grammar features in Chromium”. A deep dive that might help answer your question “How hard can it be to implement [my pet feature]?”
- URL protocol handler registration for PWAs – Let installed PWAs handle links that use a specific protocol for a more integrated experience. Further steps to enhancing the capabilities and UX of web technology.
- What’s New in Android Accessibility – TL;DR: Samsung and Google now collaborate on Talkback; You can now talk to Talkback. For deaf people: live transcription of conversations in 80 languages; an app to amplify certain frequencies of sound in real time (eg, a hearing aid); teachable app that can monitor environmental sound and alert you, eg of fire alarm/ dog barking/ your doorbell ringing. Lots of technology (crypto, surveillance, Facebook) makes the world worse, but the liberating tech on devices is a massive boon for people with disabilities.
- An experiment in helping users and web publishers create deeper connections on Chrome – Google Chrome is trialling a new technology they’re calling “RSS”
- Apple accused of breaking UK competition law by overcharging for apps – “The tech company has been accused of deliberately shutting out the competition in the store and forcing people to use its own payment processing system, generating “excessive” profits for itself in the process.”
- The Enclosure of the Public Interest Internet – EFF
TL;DR: I’ve forked the splendid but dated Tota11y accessibility visualisation toolkit, added some extra stuff and corrected a bug, and my employer has let me release it for Global Accessibility Awareness Day.
A while ago, my very nice client (and now employer), Babylon Health, asked me to help them with their accessibility testing. One plan of attack is an automated scan integrated with the CI system to catch errors during development (more about this when it’s finished). But for small content changes made by marketing folks, this isn’t appropriate.
We tried lots of things like Wave, which are great but rather overwhelming for non-technical people because they tend to cover the page being analysed with arcane symbols, many of which are beyond a CMS content editor’s control anyway. There are lots of excellent accessibility checks in Microsoft Edge devtools, but to a non-technical user, this is how devtools look:
Then I remembered something I’d used a while ago to demo heading structures, a tool called Tota11y from Khan Academy, which is MIT licensed. Note, this is not designed to check everything. Tota11y is a simple tool to visualise the most widespread web accessibility errors in a non overwhelmingly-techy way. It aims to give content authors and editors insights into things they can control. It’s not a cure-all.
There were a few things I wanted to change, specifically for Babylon’s web sites. I wanted the contrast analyser to ignore content that was visually hidden using the common clip pattern and to correct a bug whereby it didn’t calculate contrast properly on large text, and reported an error where there isn’t one. False positives encourage people to ignore the output and this erodes trust in tools. The fix uses code from Firefox devtools; thank you to the Mozilla people who helped me find it. There’s loads of other small changes.
Feel free to use it if it helps you. Pull requests will be gratefully received (as long as they don’t unnecessarily rewrite it in React and Tailwind), and I’ll be making a few enhancements too. Thanks to Khan Academy for releasing the initial project, to my colleagues for testing it, to Jack Roles for making it look pretty, and to Babylon for letting me release the work they were nice enough to pay me for.
Update: Version 1.1 released
17 June 2021: I’ve made some tweaks to the Tota11y UI. A new naming convention replaces “adjective+animal I’ve never eaten”. V 1+ are “adjective+musical instrument I’ve never tried to play”. V1.1 is “Rusty Trombone”.
Since Stuart Langridge and I released Which Three Birdies, it has taken the web by storm, and we’ve been inundated with requests from prestigious institutions to give lectures on how we accomplished this paradigm shift in non-arbitrary co-ordinates-to-mnemonic mapping. Unfortunately, the global pandemic and the terms of Stuart’s parole prevent us from travelling, so we’re writing it here instead.
A significant advance on its predecessors was achievable because Bruce has a proper degree (English Language and Literature with Drama) and has trained as an English Language teacher. “Which” is an an interrogative pronoun, used in questions about alternatives. This might sound pedantic, but if a service can’t make the right choice from a very limited set of interrogative pronouns, how can you trust it to choose the correct three mnemonics? Establishing trust is vital when launching a tool that is destined to become an essential part of the very infrastructure of cartography.
The mechanics of how the service locates and maps to three birds is extensively documented. Further documentation has been provided at the request of the Nobel Prize committee and will be published in due course
The Web is for everyone and anyone who makes sites that are inaccessible is, quite simply, not a proper developer and quite possibly a criminal or even a fascist. Therefore, W3B offers users the chance to hear the calls of the most prevalent birds in their location, and also provides a transcript of those calls.
Given that there are 18,043 species of birds worldwide, transcribing each one by hand was impractical, so we decided to utilise –nay, leverage– the power of Machine Learning.
Birdsong to Text via Machine Learning
Stuart is, by choice, a Python programmer. Unfortunately, we learned that pythons eat birds and, out of a sense of solidarity with our feathered friends, we decided not to progress with such a barbaric language so we sought an alternative.
Stuart hit upon the answer, due to a fortuitous coincidence. He has a prison tattoo of a puffin on his left buttock (don’t ask) and we remembered that the trendy “R” language is named after call of a Puffin (usually transcribed as “arr-arr-arr”).
Stuart set about learning R, but the we hit another snag: we couldn’t use the actual sounds of birds to train our AI, for copyright reasons.
Luckily, Bruce is also a musician with an extensive collection of instruments, including the actual kazoo that John Cale used to record the weird bits of Venus In Furs. Here it is in its Sotheby’s presentation case:
Whereas the kazoo is ideal for duplicating the mellifluous squawk of a corncrake, it is less suitable to mimic the euphonious peep of an osprey. Stuart listens to AC/DC and therefore has no musical sense at all, so he wasn’t given an instrument. Instead he took the task of inhaling helium out of childrens’ balloons in order to replicate the higher registers of birdsong. Here’s a photo of the flame-haired Adonis preparing to imitate the melodious lament of the screech owl:
After a few evenings re-creating a representative sample of birdsong, we had enough avian phonemes in the bag to run a rigorous programme of principal components analysis, cluster analysis and (of course) multilinear subspace learning algorithms to learn low-dimensional representations directly from tensor representations for multidimensional data, without reshaping them into higher-dimensional vectors.
All known birds can now reliably be transcribed with 94% accuracy, except for the Crested Anatolian Otter-Catcher. We suspect that the reason for this is the confusion introduced by the Turkish vowel harmony and final-obstruent devoicing. In practice, however, this exception doesn’t affect the utility of the system, because the Crested Anatolian Otter-Catcher is now very rare due to its being extensively hunted in the 19th century. (Fun fact, the bird was once so famous and prevalent that the whole region was known as the Otter-munch Empire.)
Hopefully, this in-depth breakdown of how Which Three Birdies? works will encourage other authors of revolutionary new utilities to open-source their work as we have done for the betterment of all humanity. We’d like to thank the nice people at 51Degrees for commissioning Which Three Birdies?, giving us free rein, and paying us for it. The nutters.
Saturday 8 May was the 18th birthday of the famous CSS Zen Garden. To quote the Web Design Museum
The project offered a simple HTML template to be downloaded, the graphic design of which could be customized by any web designer, but only with the help of cascading styles and one’s own pictures. The goal of the project was to demonstrate the various possibilities of CSS in creating visual web design. The CSS Zen Garden gallery exhibited hundreds of examples of diverse web design, all based on a single template containing the same HTML code.
I too designed a theme, which never made it to creator Dave Shea’s official list, but did the rounds on blogs in its day. For a long time, it languished rather broken, because Dave had rejigged the HTML to use HTML5 elements and changed the names of the classes and IDs that I had used as selectors for styling. To mark the occasion, I spent a while reconstructing it. You can enjoy its glory at Geocities 1996 (Seizure warning!). (You might want to use Vivaldi browser which allows you to turn off animated GIFs).
After I tweeted the link on Saturday to celebrate CSS Zen Garden’s birthday, a number of people noted that the site isn’t responsive, so looks broken on mobile. This is because there weren’t any mobile devices when I wrote it in 2003! Sure, I could rewrite the CSS and use Grid and all the modern cool stuff, but that wasn’t my intent. Apart from class and ID names, the only things I changed were the mechanism of hiding text that’s replaced by images. Tt’s now
color:transparent as opposed to floating
h3 span off screen, as Dave got rid of the spans. The
* html hacks for IE6 are still there. (If you don’t know what that means, lucky you. It was my preferred way to target IE6, which believed there was an unnamed selector above the
html element in the tree, so
* html #whatever would select that ID only in IE6. I liked it because it was valid CSS, albeit nonsensical.)
It’s there as a working artefact of web development in the early 2000s, in the same way as its “exuberant” design is a fond homage to the early web aesthetic that I first discovered in 1996. And what better accolade can there be than this:
As the former Sr Community Coordinator at Geocities, I salute this!
— Sara Hicks (@saralouhicks) May 8, 2021
Dave’s project opened the eyes of many designers and sent a message across our then-small community of Web Standards wonks that CSS was ready for prime-time. I’m told by many that the Zen Garden is still used by educators, 18 years later. Thank you, Dave Shea!
- The F-word, Episode 11 – Vadim and I interrogate Miriam Suzanne about Susy and Sass, CSS Layers and CSS compatibility, Container Queries and CSSWG.
- iOS 14.5 brings the new Safari 14.1 to PWAs and the Web Platform – PWA improvements, getUserMedia and “Privacy-Preserving Ad Click Attribution”, detective work by Maximiliano Firtman
- Related: Why some developers are avoiding app store headaches by going web-only – “It’s hard to see Apple’s decisions here as anything but outright hostile to the web and designed to push developers into making native apps”
- Progress Delayed Is Progress Denied – Do App Store policies harm developers? Is the web a credible alternative? A look at the data from the Dr Caligari of web standards, Big Al
- :focus-visible in WebKit – April 2021 – thank Dawkins that someone is trying to enhance WebKit
- Making Content Usable for People with Cognitive and Learning Disabilities – a note from Sir Uncle Timbo’s barmy army (W3C)
- Terror of the adtech industry iOS 14.5 has landed, and Siri can answer your calls … though she/he can’t hang up -“Good news for users with disabilities, though there’s room for improvement”
- Finger spelling uses your webcam and machine learning to analyze your hand shapes so you can learn to sign the American Sign Language alphabet. Made by American Society for Disabled Children; “We believe that deafness is not a disability, but language deprivation is.”
- Seeing the wood for the trees: demystifying markup in 2021 – Ian Lloyid’s HTML De-crapulator will at least allow you to scrutinise the ringpiece of the HTML produced by your framework, without the oozing haemorrhoids of its endless data-, class and onclick attributes.
- Wix Launches First of Its Kind Accessibility Tool to Help Make The Web Accessible for Everyone – My old chums at Wix launched an Accessibility Wizard, providing Wix users with a step-by-step interactive solution that detects accessibility content issues on their sites and guides the user to resolve them.
- Design Affordance Controls – Uncle Brian muses about HTML interactive controls and thingies
- WebAIM Million – 2021 Update – TL;DR Everything’s shit, but not quite as shit as last year
- The talent race is also an ethical race – “good candidates are increasingly dubious of Big Tech’s ethical credentials … technologists know the industry intimately and recognize that toxic companies can blight a résumé” by Cennydd Bowles
You don’t change the world by sitting around being a good person. You change the world by shipping products and making money.
As I wrote in my seminal management book Listen to me because I’m rich, white and clever, IBM wouldn’t have made a shitload of money in wartime Europe if they’d engaged in endless navel-gazing about politics. Their leadership told the staff to Stop Running in Circles and Ship Work that Matters, and get on with compiling a list of people with funny names like “Cohen” or “Levi”.
So here at Brucecamp, we’ve decided that it’s best if our productbots (formerly: employees) do not discuss the sausage machine while we push them into the sausage machine. As I wrote in our other book It doesn’t have to be full of whimpering Woke retards at work, “if you don’t like it, well, there’s the door. Enjoy poverty!”. And that’s all we have to say on the matter. Until the next blogpost. Or book.
In other news, Apple are wankers and I bought a sauna.
- Container Queries are actually coming – yes siree!
- CSS Container Queries – @rachelandrew explains all
- No, Google! Vivaldi users will not get FLoC’ed – whether or not you use Vivaldi, this is a good intro into Google’s plans for FLoC once third-party cookies are gone.
- How to fight back against Google FLoC – “To opt your site out of FLoC, you need to send the Permissions Policy HTTP response header.
Permissions-Policy: interest-cohort=()“. Or there’s a WordPress plugin.
- WordPress core: Proposal: Treat FLoC as a security concern – WordPress Core developers are discussing a security patch to block FLoC by default, and potentially roll it out as a security fix
- Chrome Extension to block FLoC from your chums at DuckDuckGo
- Publishing a Progressive Web App (PWA) on the PlayStore – What works and what doesn’t (in 2021)
- “Person, Shoes, Tree. Is the Person Naked?” What People with Vision Impairments Want in Image Descriptions
- How to publish packages to npm (the way the industry does things) by Zell Liew
- How to locally test an npm package – a good guide to using yalc, by Mae Capozzi
- The WebPageTest API Has Gone Public
- Building Blocks – What you should look for from open source code – Flaxen-haired FOSS Adonis @sil writes “When Isaac Newton made his point about standing on the shoulders of giants, he was actually talking about Github (probably).”
- A list of connectivity indexes, maps, and reports “to help you better under who has access to communication infrastructure and on what terms” by Steve Song.
- Browser Standards Rampage: Can We Have Nice Things? – JS Jabber talk with Jake Archibald about Portals, iframes, App Cache, Service Workers, HTML, Browser History and more. Wouldn’t it be lovely if all podcasts have transcripts?
- They Hacked McDonald’s Ice Cream Machines—and Started a Cold War – “Secret codes. Legal threats. Betrayal. How one couple built a device to fix McDonald’s notoriously broken soft-serve machines—and how the fast-food giant froze them out” – A surprisingly interesting article.
A statement from our CEO and Founder, Bruc:
At Facebruce, we strongly disapprove of the recent data leak of 50 million account details. There’s nothing more important to us than your data. Really, nothing. Have you any idea of how much we could have charged people for the information about you that is now out there, available for free, on Torrent sites and on Russian servers?
We had a deal almost signed to show messages to all people who fast during Ramadan, saying “Want some free money? Just send us your home address!”, paid for by “Patriots for the Second Amendment and Jesus”. Of course, it isn’t the money that drives us, it’s that Facebruce is facilitating community by introducing two groups. At Facebruc, we love spreading love and connection, so need to raise a little money to run the service.
So, please, trust us with your data, and click ‘Like’ to keep our engagement figures riding high as our share price!
Next on feed: LGBT+ folks! Send us your address to get a free Rainbow Pride t-shirt! (sponsored by Westboro Baptists)