This reading list is courtesy of Vivaldi Browser, who employ me and don’t moan about me reading stuff. Using Vivaldi can increase your gorgeousness by up to 78.6 IGUs (ISO Gorgeousness Units).
No, EU competition policy was not responsible for global IT chaos – “You have to admire Microsoft’s PR people for their cynicism… they are not-so-subtly letting the media know that the REAL baddie in Friday’s global IT outage was not CrowdStrike, nor poor security design of Windows, but… the European Commission’s DG Competition!”
New Class Action Lawsuit against AccessiBe – A small business believed AccessiBe’s marketing claims that its overlay would make their site accessible. The firm still got sued by a blind person who said the website was not accessible. The firm’s lawsuit says that AccessiBe violated the law by claiming that its product makes websites accessible. Case continues.
FTC Issues Orders to Eight Companies Seeking Information on Surveillance Pricing – “aimed at helping the FTC better understand the opaque market for products by third-party intermediaries that claim to use advanced algorithms, artificial intelligence and other technologies, along with personal information about consumers—such as their location, demographics, credit history, and browsing or shopping history—to categorize individuals and set a targeted price for a product or service.”
Fit-to-Width Text: A New Technique – For the love of Darwin, will the CSS Working Group just make text-fit: width or text-fit: min(10em, 100%) work already, if only so that nice Mr Komarov doesn’t thrill and simultaneously make me queasy with his CSS hackery!?!?
Third Party Cookies Must Be Removed “third-party cookies are harmful to the web and must be removed” – say W3C Technical Architecture Group, co-incidentally 2 days after Google announced it wouldn’t deprecate them, after all.
Related: Digital Profiling in the Online Gambling Industry – “limited browsing of 37 visits to gambling websites led to 2,154 data transmissions to 83 domains controlled by 44 different companies that range from well-known platforms like Facebook and Google to lesser- known surveillance technology companies like Signal and Iovation, enabling these actors to embed imperceptible monitoring software during a user’s browsing experience.” (from exec summary)
Related: Google Is the Only Search Engine That Works on Reddit Now Thanks to AI Deal – “Google is now the only search engine that can surface results from Reddit, making one of the web’s most valuable repositories of user generated content exclusive to the internet’s already dominant search engine.”
Microsoft 1998 = Apple 2024 – “What did decline after the settlement of the DOJ and EU trials was Microsoft’s browser market share — a fact which some commentators would have you believe is a complete coincidence and nothing whatever to do with governments forcing Microsoft to stop being an abusive monopolist.”
India antitrust probe finds Apple abused position in apps market – “Apple App Store is an unavoidable trading partner for app developers, and resultantly, app developers have no choice but to adhere to Apple’s unfair terms, including the mandatory use of Apple’s proprietary billing and payment system”
Chrono Piano is a live music player generates piano music based on the current date and time. Each digit from the date and time corresponds to a musical note. The date digits create the bass and the time digits form the melody.
This edition is sponsored by my new employer, Vivaldi, whose desktop browser version 6.8 was released yesterday with mprovements to the built-in mail client/ RSS reader, plus more powerful built-in Ad/ tracker-blocker. Give it a whirl, and make my boss like me!
Three years today, I got a weird message from a stranger, introduced to me by a twitter mututal friend:
biggest issue I think we face on the web today as developers is iOS safari with its stagnation, bugs and apples support of PWAs. I know you’ve posted related stuff but do you have any opinions on where stuff should go from here? this. We’ve organized a group and have been preparing submissions for all the major regulators. Be great to get your help.
It turned out that the message was from an Australian developer named Alex Moore who, along with his brother James, ran a company that that was almost exclusively targetting iOS devices, so finding Safari frustrating as a platform. I figured it would be a fun short project to get involved with while covid lockdowns were popping up left right and centre, so invited my chum Stuart Langridge along too, because he cares about the open web and is the best explainer-of-things person I know. And thus began my involvement with Open Web Advocacy.
Reader, it was not a short project, but it has been fun.
First, we spoke to the UK regulator, the Competition and Marketing Authority. What a ramshackle bunch we must have appeared to them – but my guess is that is what got our feet under the table. When you’ve had endless meetings with Big Tech lawyers and paid lobbyists, it must be pretty easy to work out that we were cut from a different cloth and that we were exactly as advertised: a group of independent web developers who just want(ed) the web to realise its full potential across devices. We simply wanted to be able to offer an app-like experience for the long tail of developers who couldn’t make iOS and Android single-platform apps, because of cost or complexity.
Our numbers swelled, with members all over Europe, Japan, USA, and Australia. Then we briefed the EU, and the Japanese regulator (at very odd times of the day).
The laws and regulations that various territories have enacted will take time to come into effect. Big Tech has seemingly an inexhaustible supply of money to spend on lawyers to gum up processes, make frivolous claims to be exempt from requirements to behave themselves. This is to be expected; for monopolists, any delay means more time to extract rent and increase profit.
But drafting and policing regulations was never OWA’s thing. We were there to advise the regulators on what is certainly a deeply technical and quite esoteric subject.
What I’m personally most proud of is that we got the regulators thinking about the web, browsers and browser engines as real competitors to the single-platform apps that the dominant duopoly would prefer you to write. Previous drafts of the EU Digital Markets Act didn’t mention browsers at all, for example.
Earlier this month, I joined Vivaldi, the independent Chromium browser that focuses on privacy, personalisation and power features (like a built-in mail client and RSS reader, a built-in ad blocker and tab management for the terminally online), so resigned from the board of OWA. As I said at the time, I don’t want any of Big Tech’s army of lawyers pointing at OWA and saying “look! Bruce works for Vivaldi, so OWA are a shill for, er, Big Little Tech!”. Needless to say, I am still whole-heartedly a supporter of their aims, and will amplify their voice.
A big snog and thankyou to all my OWA comrades. It’s been a privilege.
For my first conference after joining Vivaldi a week ago, I travelled to Amsterdam to help MC the JSNation conference. Naturally the opening ceremony required a JS Pop group (a sub-genre of K-pop) doing a carefully choreographed dance routine and lip-syncing to a song.
Here’s the TC39 group in front of the river. Left to right are Phil Nash, me, Niall Maher and Floor Drees.
And here we are, captured at the end of our routine with the letters “TC39” on the back of our suits. There were over a thousand attendees, and not a dry seat in the house.
Here’s the song what I wrote, for your listening pleasure. (Afficianados will note that I have deftly re-purposed the tune of Saperlipoppete, the Eurovision smash I wrote for the transnational supergroup Deluxembourg.)
I get so excited writing JavaScript I’m pretty easy-going but now I use Strict. When I first began I was in callback hell But then I met you and now it all goes well
I love you when my tests pass Meet me in the moonlight and extend my class. You’ve always kept your Promises from the start Now you’ve shot your fat arrow straight to my heart
Oh TC39, I’m so glad you’re mine! Say you will be with me til the end of time! Oh TC39, you’re so sublime. Your specs are the best, my TC39!
Today is my first day working at Vivaldi, the browser people (many of whom I know from our time at Opera before it changed hands). I shall be working as a Technical Communications Officer, helping out with blogposts, journalist enquiries, and regulatory fun.
Because of the latter aspect, I’ve resigned from the Board of Open Web Advocacy. OWA has always been a group of independent web developers with no skin in the browser game other than the wish for the Web to reach its full potential, and be a true competitor to Single-Platform Apps. I don’t want any of Big Tech’s army of lawyers pointing at OWA and saying “look! Bruce works for Vivaldi, so OWA are a shill for, er, Big Little Tech!”. Needless to say, I am still whole-heartedly a supporter of their aims, and will amplify their voice.
Knowing the core team at Vivaldi of old, I don’t expect my job title to constrict what I actually *do*; I’m attracted to working with them because it’s a non-hierarchical company that believes in self-organising and collaboration. One of the guiding principles is “Respect each other, question everything, be creative and get things done”.
I’ve also been a Vivaldi user for a few years now, and like that they don’t snoop, and that there is no bundling LLMs/ “AI” or crypto-crapto in the browser. Vivaldi is owned by its employees (all of them, including cleaner and office manager) and has no external investors, so there’s a good chance of keeping that culture.
Don’t ask me too many hard questions yet; it’s been eight years since I was working in browsers, and there’s a lot to catch up on. Lately I’ve grown jaded about the Rube Goldberg machine that is modern web development; I’m sick of Docker and node dependancy nightmares, silly CSS dialects to shield “full stack devs” from understanding how to style web sites, creaky old component libraries and over-hyped frameworks that seem to be designed to make it harder to send performant, accessible HTML to users.
So I’m looking forward to returning to BrowserLand, Web Standards World (wouldn’t those be great theme parks?) and extending the reach of the greatest democratising communication system ever invented, while prising as much of it as possible out of the clammy hands of Big Tech and Vulture Capitalists.
Masonry and reading order – by Rachel Andrew. TL;DR: there’s a plan, and it’s for Flexbox and Grid, too.
Mobile Tabs Part 3 – Flutter – “Full Keyboard Access (FKA) on Flutter does not exist. If you are planning on building an app using Flutter, FKA users will not be able to use your app. There has been an open issue for FKA support since 2021.” (Paciello Group)
An even faster Microsoft Edge – Microsoft Edge is migrating its UI from React to web components. “The UI is now 42% faster for Edge users and a whopping 76% faster for those on a device without an SSD or with less than 8GB RAM!”
Apple Puts Rival App Stores Behind a Tall Barricade – “The experience of AltStore shows the significant hurdles facing those looking to open third-party app stores in Europe.” (Bloomberg, link to unpaywalled mirror)
“Things are so broken here at Apple.”– “I joined about 4 years ago. I am awed by the fact that we manage to release any software at all, let alone functional software. The biggest problem is communication. No one fucking communicates.”
A U.S. lobby group representing tech giants Google, Amazon and Apple has asked India to rethink its proposed EU-like competition law, arguing regulations against data use and preferential treatment of partners could raise user costs
India’s “Digital Competition Bill” is on the lines of EU’s landmark Digital Markets Act 2022. It will apply to big firms, including those with a global turnover of over $30 billion and whose digital services have at least 10 million users locally, bringing some of the world’s biggest tech firms under its ambit.
It proposes to prohibit companies from exploiting non-public data of its users and promoting their own services over rivals, and also abolish restrictions on downloading of third-party apps.
Cynics might suggest that US Tech regards India as a potential sacred cash cow, given that its home markets are becoming saturated and China is notoriously harder to operate in. Reuters points out
With a population of 1.4 billion people and a growing affluent class, India is a lucrative market for big tech companies. Apple CEO Tim Cook said this month the company posted a “revenue record” in India during the March quarter, when its overall global revenue declined 4%.
The U.S.-India Business Council (whose directors include representatives of such trusted organisations as Boeing, Lockheed Martin, Meta, Google and Amway) is, of course, only thinking of Indian consumers:
“Targeted companies are likely to reduce investment in India, pass on increased prices for digital services, and reduce the range of services,” it says.
Naturally, that’s not to be interpreted as some sort of threat. Nope, that’s beloved captains of US Capitalism throwing their collective benign arms around Indian consumers, protectively. A heart-warming story for today’s troubled times.
I mostly enjoyed this Booker-winning novel about a family in Ireland suffering under an increasingly authoritarian government, as the country swiftly descends into civil war. The politics aren’t fleshed out; it’s about the psychological effects of civil war and being a minority (in this case, the husband is a “disappeared” Trade Union leader). It’s very much a book of our time; this isn’t set in the “day after tomorrow”; it’s today. Apart from the street names and the Irish-accented dialogue, it could be set in Damascus or Darfur.
But what put me off what the author’s stylistic decision to avoid paragraphs or quotation marks. Much of the book was two pages of solid text, justified left and right so it was not at all easy on the eye. Here’s a photo of a random but representative spread:
The lack of speech marks meant that often I couldn’t tell when one person’s reported speech ended and another participant in a conversation began, or when narration recommenced. For example, from the randomly chosen spread from the photo:
Carole looks up as the waitress steps towards them with a tray and places the drinks on the table then smiles and steps quickly away. You look as though you haven’t slept in a week, Eilish says, are you sleeping at all? Sleep, Carole says, her voice distant, far off in time, she looks across the table at Eilish without seeing her. I don’t sleep much at all, she says
(There were more egregious examples, but I left the book in my hotel room when I finished my holiday, as I knew I wouldn’t want to re-read it.)
The effect of this is that I would lose the thread and have to re-read to parse and make sense of the dialogue, and the monolithic slab of text made it difficult to find the place to re-read from. This was annoying, and got in the way of the excitement of the story.
I think this would be a great film or Netflix mini-series. Unfortunately, Lynch’s too-cool-for-punctuation prose got in the way of the narrative.
Probably everybody knows this, but I didn’t and in case you don’t, here’s why the CSS :has() pseudo-class is omnipotent and so awe-inspiring I call it the God Selector.
I was working on a no-JavaScript fallback for a mobile hamburger menu, using the newly-baseline HTML Popover API. For users without JavaScript (and, yes, there are many), the code looks like this:
I wanted to give the button a different style if its associated popover is shown. There is no pseudo-class for button:pressed (which is why some people like the checkbox hack, which is clever but has the wrong semantics. And, anyway, popovers can’t be triggered from inputs).
There is, however, a pseudo-class to tell you if a popover is open: :popover-open. Now, to find a way to style the button element by targetting this aspect of its associated (but not descendant) popover target element.
Sometimes people called :has a “parent selector”, but it’s not only that. I knew that it could “reach out” and look at siblings etc if there is the necessary CSS combinator. This selector worked for my code:
However, I wasn’t happy about it; what happens if the nav ceases to be a sibling (as it soon did, because I needed a wrapper around the stuff before the nav, to lay it out using Flexbox)? I tend to dislike handing code over to clients that has a very tight dependancy on exact markup structure.
Luckily, I had a conversation with the splendid Luke Warlow of Igalia (a free software consultancy/ hippie commune who do loads of work in all the browser engines), and he blew my mind. It turns out I was thinking about :has the wrong way round.
This is omnipotent because it doesn’t require any structural relationship between the thing being checked and the thing being styled. The first bit of the selector :has(nav:popover-open} doesn’t have a class, ID or element name, so is scoped to the root of the document. That’s the thing being checked: is there a nav that is an open popover anywhere in this page?
The second part of the selector is the thing to be styled, which is a descendant of the root – and, of course, everything on the page is a descendant of the html element, which is the root. Think of the selector as html:has(nav:popover-open) button[popovertarget] if that makes it easier to reason about.
Of course, you can narrow it down to hone in on the exact nav or button you’re interested in. For example,
And now, I’ve used the God Selector in three different places in the same stylesheet already, to achieve an effect I could not have done without handing over markup of much greater fragility. Thank you to the Mighty Luke Warlow, and I’ll have a kilo of whatever goes in the Igalia bong.