Keith Cirkel's Avatar

Keith Cirkel

@keithamus.social.bsky.social

Software Cyber Shepherd. Web platform engineer. Participant: WHATWG, CSSWG, ARIAWG, OpenUICG, WebComponents CG Website: https://keithcirkel.co.uk/ GitHub: https://github.com/keithamus Mastodon: https://indieweb.social/@keithamus

1,717 Followers  |  1,120 Following  |  240 Posts  |  Joined: 26.04.2023  |  2.1399

Latest posts by keithamus.social on Bluesky

Preview
HTML popovers shown on interest should be accessible on mobile devices | utilitybend A new HTML feature, popover=hint, lets developers create hover-triggered popovers. This article is all about the accessibility on touch devices.

πŸš€A new HTML feature, interestfor, allows for hover-triggered popovers. But how do they work on touch? The article shows different solutions for making them accessible on touch devices, and my thoughts on them. Share your thoughts! #HTML #webdev #accessibility #openui

utilitybend.com/blog/html-po...

07.08.2025 10:01 β€” πŸ‘ 50    πŸ” 13    πŸ’¬ 2    πŸ“Œ 0
Post image Post image Post image Post image

This is me a couple of days before the first release of PostCSS.

From my new article about the history of PostCSS and the lessons I learned from it (for example, how to break an API when you have 400M downloads per month).

evilmartians.com/chronicles/w...

06.08.2025 17:20 β€” πŸ‘ 38    πŸ” 11    πŸ’¬ 1    πŸ“Œ 2
GitHub - InvoxiPlayGames/bskyUnGeoBlock: Web extension to disable geographic restrictions (moderation, age verification) on Bluesky's web app. Web extension to disable geographic restrictions (moderation, age verification) on Bluesky's web app. - InvoxiPlayGames/bskyUnGeoBlock

If, like me, you're too lazy for a user script then there's a 1 click install away also: github.com/InvoxiPlayGa...

05.08.2025 09:08 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
A set of grotesque chairs (one white, one grey, one black) which would otherwise be fine but some plonker thought it would be sensible to strap a door knocker to the back of it.

A set of grotesque chairs (one white, one grey, one black) which would otherwise be fine but some plonker thought it would be sensible to strap a door knocker to the back of it.

I apologise in advance.

01.08.2025 18:55 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0
Preview
State of HTML 2025 Take the State of HTML survey

State of HTML is live now!

Please take it if you care about the web platform! πŸ™‚

These surveys are super helpful for our team to understand the state of the ecosystem and prioritize missing features/platform needs!

survey.devographics.com/en-US/survey...

28.07.2025 16:59 β€” πŸ‘ 39    πŸ” 18    πŸ’¬ 3    πŸ“Œ 1

Look forward to the inevitable data leaks from all these companies promising to securely identify people.

31.07.2025 21:10 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

TIL I can’t use Bluesky DMs any more without handing over my personal info to a random website because β€œwon’t someone please think of the children” draconian UK laws enacted last week.

So if you’re trying to DM me, maybe try mastodon instead: @keithamus@indieweb.social

31.07.2025 19:42 β€” πŸ‘ 18    πŸ” 1    πŸ’¬ 2    πŸ“Œ 0
Me, sitting behind a cuddly toy of a fox. Ok it's obviously Firefox.

Me, sitting behind a cuddly toy of a fox. Ok it's obviously Firefox.

Starting my new role on Monday. Could be anywhere.

31.07.2025 12:57 β€” πŸ‘ 365    πŸ” 14    πŸ’¬ 42    πŸ“Œ 4

Capturing event listeners let you listen to events widely, if you want more of a β€œbroadcast” thing.

30.07.2025 21:32 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

UK users when the website asks them where they're posting from today.

25.07.2025 07:10 β€” πŸ‘ 8583    πŸ” 3433    πŸ’¬ 52    πŸ“Œ 47

Some scientists have been working on genetically engineering an experimental new tag that can absorb the powers of other tags. They’re calling it `selectedcontent`. As of yet we’re unsure of just how powerful this tag may become.

23.07.2025 11:45 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
State of HTML 2025 Take the State of HTML survey

πŸ“’ The State of HTML Survey is live survey.devographics.com/en-US/survey...

The #HTML and #CSS surveys are the only web surveys I don't want to miss. Thank you @sachagreif.com for making them, and @lea.verou.me for curating.

Please take a few minutes to fill the survey if/when you can. ✨

20.07.2025 16:21 β€” πŸ‘ 63    πŸ” 35    πŸ’¬ 2    πŸ“Œ 1

As Nathan points out in another reply - it is available in Firefox nightly!

18.07.2025 10:45 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
A screenshot of Firefox in the `about:config` page. The search bar has the text `layout.does.not.exist` and below is a form to add a new preference with that name. One can determine this is a form to add a new pref because it has a set of radios for the type (Boolean, Number, String) and a `+` button with the tooltip `Add`.

A screenshot of Firefox in the `about:config` page. The search bar has the text `layout.does.not.exist` and below is a form to add a new preference with that name. One can determine this is a form to add a new pref because it has a set of radios for the type (Boolean, Number, String) and a `+` button with the tooltip `Add`.

A screenshot of Firefox in the `about:config` page. The search bar has the text `layout.css.anchor-positioning.enabled` and below is a result for an existing preference with that name. One can determine this is an existing pref because it does _not_ include the form to set this prefs type (Boolean, Number, String), nor does it have the `+` button, and instead it has the default value of `false`, and a button to reset to the default value.

A screenshot of Firefox in the `about:config` page. The search bar has the text `layout.css.anchor-positioning.enabled` and below is a result for an existing preference with that name. One can determine this is an existing pref because it does _not_ include the form to set this prefs type (Boolean, Number, String), nor does it have the `+` button, and instead it has the default value of `false`, and a button to reset to the default value.

It's likely not in that release.

When you go to `about:config` and search for the pref, if it's not already in the list as `false` then it is not available in that release. You might instead get a UI to create the new pref which won't do anything

Consider the following screenshots; subtle I know.

18.07.2025 10:45 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

There are several folks interested but I am always happy to help people get hacking on browsers so if you want to pair on this or something bigger, I’m totally down!

17.07.2025 21:40 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Looks closely related! I may have to explore these combinations further.

17.07.2025 21:38 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Zero! We have the line of code that needs adding, just need an html test to confirm it

17.07.2025 21:36 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

What would you prefer to do? How would you envisage the default styling?

17.07.2025 21:01 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
1658511 - enter on input type text can trigger link UNCONFIRMED (nobody) in Core - DOM: Forms. Last updated 2025-07-17.

We've got a good-first bug for new contributors to Firefox: bugzilla.mozilla.org/show_bug.cgi...

If you're interested in writing a little bit of C++/HTML/JS to make your first contribution, let me know! I'd be happy to guide you through the whole process over chat or video call.

17.07.2025 20:11 β€” πŸ‘ 15    πŸ” 4    πŸ’¬ 3    πŸ“Œ 0

This has not been specified until now. Each browser handles it slightly differently. The aim of specifying it is to find out the common behaviour to get a specified subset, and start removing the unspecified behaviour from engines, in the hopes that one day these heuristics largely disappear.

16.07.2025 17:30 β€” πŸ‘ 11    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
An absolutely gargantuan screenshot of the spec prose available on https://deploy-preview-2576--wai-aria.netlify.app/html-aam/#el-table

An absolutely gargantuan screenshot of the spec prose available on https://deploy-preview-2576--wai-aria.netlify.app/html-aam/#el-table

I did a thing.

These are all the steps (with citations) each of the browsers take to determine if a <table> element is really a <table> element or if it's just sparking layout.

deploy-preview-2576--wai-aria.netlify.app/html-aam/#el...

16.07.2025 17:28 β€” πŸ‘ 13    πŸ” 1    πŸ’¬ 3    πŸ“Œ 0

Lastly, for prop drilling, check out github.com/webcomponent... which might be a helpful pattern to adopt. You basically propagate `context-request` events with a function that a receiver can call to supply a value. For some inspiration on application, maybe github.github.io/catalyst/gui... helps.

16.07.2025 09:59 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Using Cancellation Signals – Web Components Guide

Further in the State & Reactivity, the "subscribe"/"unsubscribe" pattern looks a bit like using AbortControllers for events. Check out webcomponents.guide/learn/techni... which goes into detail about how to use signals to clean up events, might be handy.

16.07.2025 09:56 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Stop Using CustomEvent

In your `State & Reactivity` section you mention using custom events. Your code uses `CustomEvent`. I'd recommend avoiding `CustomEvent` and consider sublcassing events, if you're not already. Check out justinfagnani.com/2025/06/25/s... for more.

16.07.2025 09:55 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Your sanitisation section doesn't mention attributes, but you should consider it. There have been a number of XSS attacks by leveraging `class` or `data-` attributes that trigger behaviours in code. Ideally you'd have an allow list of attributes, and maybe limited to certain values (esp for class)

16.07.2025 09:54 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Great article! Looking forward to using the app when you release it.

Couple of notes...

16.07.2025 09:54 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 4    πŸ“Œ 0

Sound like an interesting class. We can always have both!

12.07.2025 12:27 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

It's a little tricky... on one hand it's literally `ComputeTheIntersection` in Gecko (searchfox.org/mozilla-cent...), OTOH it does shennigans like checking the document origin. There's definitely opportunity to refactoring but not such as easy win as checking if points/rects intersect.

05.07.2025 21:15 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

For a take maybe too nuanced for socials:

If your sense of nation comes from geography you may have a warped sense of national pride.

If your sense of nation comes from a shared culture and shared set of values, that embraces those who commit to the same, then that is, IMO, reasonable.

05.07.2025 11:20 β€” πŸ‘ 8    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Preview
Microsoft is laying off as many as 9,000 employees Xbox will end or decrease work β€˜in certain areas’

Your regular reminder being laid off is not a condemnation of you or (likely) your manager, but instead a signal of incompetence from upper management. Their job is to keep the business sustainable and they failed, and you get to pay the price.

www.theverge.com/news/693535/...

02.07.2025 17:28 β€” πŸ‘ 44    πŸ” 7    πŸ’¬ 2    πŸ“Œ 2

@keithamus.social is following 20 prominent accounts