Luke Profile
Luke

@luke_warlow

Followers
831
Following
932
Media
79
Statuses
3,394

United Kingdom
Joined June 2019
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
@luke_warlow
Luke
4 months
Textarea rows attribute now works as expected in Firefox 128 after 25 years!
Tweet media one
@luke_warlow
Luke
4 months
Don't mind me just fixing 25 year old Firefox bugs👀 cc @RogersKonnor
Tweet media one
4
4
102
8
55
542
@luke_warlow
Luke
3 months
@EskilSteenberg Fingerprinting, chromium historically didn't require a permission prompt to do certain certain MIDI things, and now Firefox supports it and does have a permission prompt you can catch these sketchy sites red handed.
3
5
314
@luke_warlow
Luke
5 months
@NicoloRibaudo Unfortunately the only way to do it is with root. Some apps let you enable screenshots for a short period of time. I completely agree there should at least be a developer option for those of us who want full control.
2
1
139
@luke_warlow
Luke
4 months
@wesbos Chuck a `scrollbar-gutter: stable` in there to avoid the horizontal shift from conditional scrollbars.
4
0
126
@luke_warlow
Luke
5 months
@killedbygoogle Hate to be that guy but dark mode is as much an accesibility feature as it is stylistic. I find light text on dark background easier to read. Just support both themes and let the consumer decide.
4
0
105
@luke_warlow
Luke
4 months
Don't mind me just fixing 25 year old Firefox bugs👀 cc @RogersKonnor
Tweet media one
4
4
102
@luke_warlow
Luke
5 months
@danielcroe Absolutely agree, but imo we should also call it JSON5 when we do, not shoe horn it into a .json file.
5
0
96
@luke_warlow
Luke
5 months
Quick PSA for everyone excitedly using the popover API now it's in all 3 engines. Add an empty pointerdown event listener to your body element, else popover lightdismiss doesn't work on iOS Safari. See
5
14
85
@luke_warlow
Luke
9 months
I'm really excited to announce that I'll be joining @igalia on the web platform team starting next week!
23
5
83
@luke_warlow
Luke
3 months
Ladybird now the first browser (afaik) with a browser level contrast setting!
Tweet media one
3
10
69
@luke_warlow
Luke
8 months
Pretty cool to think just under a year ago I set myself a goal of getting scrollbar styling implemented in either chrome or WebKit working in spare time, and now it's shipping in Chrome, partially implemented in WebKit, and I also have a job working on the web platform full time!
5
1
57
@luke_warlow
Luke
1 year
@HarryHamishGray People who listen to stuff out loud in any carriage annoy me. It's like everyone's collectively decided headphones aren't a thing anymore.
2
0
49
@luke_warlow
Luke
8 months
Oh hey that thing I did is shipping!
@bramus
Bramus
8 months
✨ New in Chrome 121 is support for the `scrollbar-width` and `scrollbar-color` properties. Unlike the `::-webkit-scrollbar-*` pseudos, these properties are standardized by the CSSWG.
Tweet media one
9
74
498
2
5
51
@luke_warlow
Luke
7 months
👀 Implementing field-sizing property in WebKit!
7
2
42
@luke_warlow
Luke
9 months
Anyone with chrome canary and experimental flag enabled can now give the Web Preferences API a spin on my site! The site is fully styled with media queries!
Tweet media one
2
5
41
@luke_warlow
Luke
10 months
@LiveLongAndCSS @htmx_org @madnan_rafiq @mockaroodev @ryanflorence Even that requires some knowledge because the signal to noise ratio of JS libraries is so high. React aria is (based on second hand experience) a good tool but it's unfortunate that it's needed. The main point here is just that the platform should and could do a lot more.
2
0
36
@luke_warlow
Luke
10 months
This just got merged, I'm now a HTML contributor! Hoping to get it out for Chrome 121.
@luke_warlow
Luke
1 year
Just filed my first ever HTML spec addition! Trying to get showPicker() added to select elements.
1
0
6
4
1
36
@luke_warlow
Luke
5 months
Hot take: browsers just shouldn't let you do certain things. This is probably one of them. They're called user agents because they're meant to serve the user.
@xirclebox
xirclebox
5 months
If I EVER meet the dev that wrote this... focus-visible { outline: 0; } On sight! #a11y
6
1
23
13
5
35
@luke_warlow
Luke
7 months
@fasterthanlime I'm fine with it showing because phishing training should make people distrustful of changes otherwise. But a link to a document explaining what it will look like seems necessary else it'll surely just be open season for scams. Tell people to expect change but not what...
1
0
33
@luke_warlow
Luke
1 year
@gitlab seems to have deployed on a Friday breaking their site. Which is annoying cause it's stopping me deploying on a Friday and breaking my site.
Tweet media one
0
9
33
@luke_warlow
Luke
1 year
Well that was surprisingly easier than I expected... (Tends to happen when you ignore the tougher implementation aspects lol) Alt: A video of my local Chromium build with a prototype of the Web Preferences API. Showing off it working.
@luke_warlow
Luke
1 year
👀 Very early days for my proposal but thought l'd give it a prototype to see what it'd look like in practice.
0
1
10
4
6
31
@luke_warlow
Luke
8 months
@markdalgleish I'm not sure I agree that users actually match that expectation. I'd be curious for studies on this. Personally if I hover a button and the cursor doesn't change I wonder if it's actually interactive especially on less conventional UI designs.
5
0
30
@luke_warlow
Luke
8 months
I'm so excited that Temporal is a stage 3 proposal now. Can't wait for this to be available everywhere and the pain of JS dates will finally be over.
@deno_land
Deno
8 months
temporal coming soon to Deno 1.40
Tweet media one
11
68
566
3
5
29
@luke_warlow
Luke
11 months
I'm now also officially a WebKit committer! 🎉
@luke_warlow
Luke
1 year
I'm officially a chromium committer! 🎉 (means I have merge rights)
3
0
15
4
0
29
@luke_warlow
Luke
9 months
👀 Prototyping the Close Watcher API inside of WebKit!
3
1
28
@luke_warlow
Luke
5 months
@luciascarlet If I don't have anything specific to communicate through typography then why not just use what the user has configured?
1
1
26
@luke_warlow
Luke
10 months
@adamwathan Might this mean a Vue flavour of catalyst in future? Or is it still dependent on react in ways that would create too much maintenance burden to translate?
2
0
25
@luke_warlow
Luke
10 months
@LiveLongAndCSS @htmx_org @madnan_rafiq @mockaroodev @ryanflorence As an example, semantic html can't even give you a proper dialog implementation because the trigger button has to use JS and be hooked up with necessary aria. Invokers fix this (among other things), I'm hopeful the platform will improve with time.
2
0
24
@luke_warlow
Luke
7 months
TIL the anchor positioning CSS proposal allows you to anchor to pseudo-elements aswell as "real" elements. Meaning you can build a tooltip for a range input's value really easily. You'll need Chrome with experimental web platform features flag to try it
4
0
21
@luke_warlow
Luke
5 months
This has got to be a contender for the best new web platform feature this year. I'm so glad it's finally shipping (pending approval)
@intenttoship
Intent To Ship
5 months
Blink: Intent to Ship: CSS Anchor Positioning
1
27
121
1
0
22
@luke_warlow
Luke
9 months
@ItsMatt_Again Yes but Trainline should provide a big "was your train delayed or cancelled?" section in their refund flow to direct people to the right place. They know people don't understand delay repay well enough and are banking on it.
2
0
22
@luke_warlow
Luke
10 months
What's something that requires JavaScript today that you wish you could do with plain html and/or CSS?
31
2
21
@luke_warlow
Luke
10 months
@LiveLongAndCSS @htmx_org @madnan_rafiq @mockaroodev @ryanflorence I'm not wishing to exonerate developers for inaccessibility but semantic HTML doesn't get the platform off the hook. It's a complex area that requires work on both sides.
1
0
21
@luke_warlow
Luke
10 months
@LiveLongAndCSS @htmx_org @madnan_rafiq @mockaroodev @ryanflorence But that's just not a reasonable take unfortunately. Because there's soo many missing semantic elements. Absolutely use them where they exist but even something as simple as toggle button requires aria attributes.
3
1
20
@luke_warlow
Luke
5 months
Always a shame to see your favourite podcasts go down hill 😔😜
@igalia
Igalia
5 months
🎙️ New podcast episode: Getting Started in Standards Igalia's @meyerweb and @briankardell with Mozillan and HTML editor @zcorpan and fellow Igalian/engine contributor @luke_warlow about getting started in web standards.
Tweet media one
1
10
28
2
3
18
@luke_warlow
Luke
10 months
Tweet media one
@htmx_org
htmx.org / ACM published (same thing)
10 months
folks, please give luke a follow he is thoughtful, helpful, reasonable, nuanced, knowledgeable & not only deeply cares about accessibility but is working to improve it he doesn't threaten lawsuits, nor does he morally shame people this is the ideal accessibility advocate
6
6
72
4
0
17
@luke_warlow
Luke
10 months
Wonder if we can get this sort of "safe area" logic in the platform somehow? It feels like something people often implement themselves which isn't ideal DX, and could also lead to inconsistent UX across sites.
@claviska
Cory LaViska
10 months
Adding "safe trapezoids" to @shoelace_style so tooltips don't close suddenly when you hover over the gap between target and tooltip. They're not as sexy as safe triangles, but they're equally useful. (shown in orange for demonstration purposes)
5
7
95
2
3
17
@luke_warlow
Luke
3 months
Tweet media one
2
0
17
@luke_warlow
Luke
6 months
How many templating systems have we built over the years just to get the feeling of this back?
@trikcode
Wise
6 months
How we used to build website templates back in 90s
Tweet media one
400
307
4K
3
0
16
@luke_warlow
Luke
8 months
It's great to see Mozilla move to a neutral (from negative) stance on the web serial API. Following on from the apparent success of the web midi permission model in Firefox it seems they're supportive of other powerful APIs following the add-on model.
1
4
16
@luke_warlow
Luke
7 months
Another nice building block is soon to be cross-browser! All we need now is anchor positioning!
@Una
Una 🇺🇦
7 months
Popover coming to Firefox 125! It's happening 🎉🎉🎉 This will mean full browser support soon ☺️
7
60
370
2
3
16
@luke_warlow
Luke
1 year
@liquid2ulu @AshleeMBoyer The argument is it's the morally and in many places legally right thing to do. Far more than just screen readers as well. E.g. Video captions for deaf people. Keyboard focus indicators (and ability). Motion reduction for people sensitive to motion etc etc
2
0
15
@luke_warlow
Luke
1 year
So Arc just casually exposes your color palette to every site you visit, I kinda get the intention that sites can match your theme but this feels a bit over the top to me? They should just override the (standard) AccentColor value and that'll be exposed for sites to use.
Tweet media one
3
1
15
@luke_warlow
Luke
11 months
Took a bit longer than I'd hoped but finally finished (standard) scrollbar styling in Chrome. 🤞🏻it should make it in for 121.
@intenttoship
Intent To Ship
11 months
Blink: Intent to Ship: CSS Scrollbars: scrollbar-color, scrollbar-width
0
3
30
1
2
15
@luke_warlow
Luke
1 year
@cpojer Hopefully the types as comments proposal will somewhat fix this. It'll be a requirement of JS compliance to support it then.
1
0
14
@luke_warlow
Luke
4 months
What started out as a chance find and fix in svelte has turned into 4 (so far) separate frameworks getting support for MathML 😊
@justinfagnani
Justin Fagnani
4 months
Adding MathML fragment support to @buildWithLit
2
2
26
1
1
15
@luke_warlow
Luke
1 year
I'm officially a chromium committer! 🎉 (means I have merge rights)
3
0
15
@luke_warlow
Luke
5 months
@NicoloRibaudo @ematipico What's fun for me is that all 3 financial apps I use either always allow screenshots or have a toggle to enable them. It's apps that have no business hiding their content that prevents them. Like historically at least my train ticket app didn't let you screenshot...
1
0
14
@luke_warlow
Luke
5 months
@kettanaito But the prototypes yearn to be polluted!
2
0
15
@luke_warlow
Luke
9 months
For anyone unaware the HTML spec has a new CloseWatcher API to replace your escape key listeners and gain support for new close signals (e.g. Android back gesture). Hopefully component libraries will start to add support so sites can get the new goodies where supported!
1
3
14
@luke_warlow
Luke
3 months
@jh3yy If you give it a go in safari tech preview (enable the flag first) it should also be working relatively well there. Still need to work out placeholder sizing and file inputs but it's coming along.
1
0
13
@luke_warlow
Luke
3 months
@awesomekling @Quentindeve_ @ladybirdbrowser Yeah for me sqlite is great example where trying to maintain that yourself (while very cool and admirable) is not going to be worth it when your main task is implementing the web platform. Excited to see where this new direction takes you!
0
0
14
@luke_warlow
Luke
1 year
Starting from Canary 118 Chrome supports the scrollbar-width and scrollbar-color CSS properties behind the experimental web platform features flag. Have a few bugs left to fix but hopefully we can get them to stable soon enough!
1
1
14
@luke_warlow
Luke
4 months
You know you've gone too deep when you off the top of your head know the cause of issues like this 🙃
@RogersKonnor
Konnor Rogers
4 months
Can someone explain to me why `<textarea rows="1">` renders with 2 rows in Firefox, but with only 1 row in Chrome / Safari?
6
1
4
0
0
14
@luke_warlow
Luke
11 months
Implemented my select.showPicker() proposal in WebKit now too. Behind a feature flag for now but hopefully I can get it working on iOS, get the spec merged and unflag it.
@luke_warlow
Luke
11 months
1 WebKit showPicker fix down 2 more to go. Date inputs at least work on all engines now (desktop only for now).
1
0
5
1
0
14
@luke_warlow
Luke
6 months
@jh3yy ...you're not even demoing CSS custom properties (if we're gonna be pedantic they're not even called variables), it's quite clearly a post about a very new thing...
1
0
12
@luke_warlow
Luke
11 months
Web Preferences API Coming to a Chrome Canary near you (behind experimental flag). Preferences don't persist yet but it's complete enough to get a feel for the API.
@luke_warlow
Luke
1 year
Well that was surprisingly easier than I expected... (Tends to happen when you ignore the tougher implementation aspects lol) Alt: A video of my local Chromium build with a prototype of the Web Preferences API. Showing off it working.
4
6
31
2
3
13
@luke_warlow
Luke
3 months
Does anyone have any good resources that explain the difference between a toggle button (aria-pressed), a checkbox and a switch. Not just from the html and aria sense but giving examples of when to use each and *why* each exist?
6
5
12
@luke_warlow
Luke
6 months
For those interested in the invokers proposal this video might be of interest. Still lots to work out but it's nice to see this idea take shape. See for more info.
@luke_warlow
Luke
6 months
@WickyNilliams Only got the "gain interest" aspect working so far but both hover and focus on a trigger button (or link) opens the popover with no JS.
1
0
3
0
1
12
@luke_warlow
Luke
5 months
@NicoloRibaudo @ematipico Conveniently the qr code of the ticket is exactly what you need if you want to claim back money for a delay... 🤔
0
0
13
@luke_warlow
Luke
2 months
In no particular order: Svelte, Preact, Angular, Vue and Lit have all had MathML fixed or added. React and solid seemed to already work correctly. I think between us we've fixed all the MathML bugs in the various frameworks? Can anyone find any others without support?
@briankardell
bkardell 🐦
2 months
This one landed too, so ... are there any significant frameworks left that don't support mathml-core properly?
0
0
1
1
3
13
@luke_warlow
Luke
10 months
@LiveLongAndCSS @htmx_org @madnan_rafiq @mockaroodev @ryanflorence Every required aria attribute is a failure of the platform, and aria doesn't even cover everything because beyond that many UI elements require JavaScript to achieve necessary keyboard interactions.
1
1
13
@luke_warlow
Luke
11 months
@luciascarlet I use it if I'm going on a train but otherwise no. Unlimited data cap on WiFi and 5G means I have no use for it in most cases.
1
0
12
@luke_warlow
Luke
3 months
@luciascarlet I completely agree they should be forced to allow it, with the only condition being that your app should "function" without it. That way lockdown mode can disable it for security and your app isn't useless. (Though for sideloaded apps them reducing to an empty shell feels fine?)
1
0
12
@luke_warlow
Luke
4 months
@stolinski <center>
2
0
11
@luke_warlow
Luke
4 months
👀 @Keithamus invokers proposal got a shout out at Google I/O.
@firt
Maximiliano Firtman
4 months
Ideas for the future
Tweet media one
Tweet media two
0
0
3
1
0
12
@luke_warlow
Luke
10 months
@LiveLongAndCSS @htmx_org @madnan_rafiq @mockaroodev @ryanflorence Sure but that's not html semantics that's someone needing to reach for a library (and shipping extra JavaScript as a result) for a very basic example.
3
0
12
@luke_warlow
Luke
4 months
Forms should really support put and delete requests natively...
1
0
11
@luke_warlow
Luke
1 year
@jensimmons @jaffathecake Navigations API CSS Anchor Positioning View transitions API scrollend event Masonry layout (which is close to done I think?) These are my top 5 right now
1
0
11
@luke_warlow
Luke
2 months
@zeeg Because the generic isn't being used anywhere, there's no way for the compiler to actually know that works. You're trying to do an unsafe type cast in generic syntax. I think `JSON.parse() as TypeStruct` works though?
0
0
11
@luke_warlow
Luke
7 months
@jh3yy I will actually take a look once I'm done with WebKit because it's relatively simple spec wise.
1
0
10
@luke_warlow
Luke
4 months
I should really get round to finishing off field-sizing in Webkit it's such a cool property.
@wesbos
Wes Bos
4 months
🔥 3 CSS tips for styling <textarea> you probably didn't know about
29
201
2K
1
0
12
@luke_warlow
Luke
9 months
I spy CSS custom state enabled inside of WebKit. Hopefully Firefox won't be far behind, this is a really key piece of the web component puzzle finally becoming reality. Shout out to @Keithamus who's been working on making this happen.
1
0
11
@luke_warlow
Luke
2 months
@claviska Select Multiple. I never even bothered with date pickers I just made do with input type dates and suggested macOS Safari users touch grass instead (thankfully Apple innovated and added a native one after like 10 years)
3
0
11
@luke_warlow
Luke
1 year
@fireship_dev I really do think browsers should just "break" preventDefault on paste events. I genuinely can't think of a legitimate use case for it.
1
0
11
@luke_warlow
Luke
10 months
@thdxr I hear this a lot but I've never heard any concrete examples of what this would look like. What would your ideal native API look like for this? Genuinely curious to hear because I've got a few ideas but no clue if they'd be what people want.
3
0
11
@luke_warlow
Luke
10 months
@htmx_org @LiveLongAndCSS @madnan_rafiq @mockaroodev @ryanflorence Problem with the relative lack of browser engineers is prioritisation of work. Hard to keep up with novel capabilities while also dealing with the backlog of historical holes in the platform.
1
0
11
@luke_warlow
Luke
5 months
@awesomekling It seems to be the way things are going with browsers. iOS lockdown mode meaning you have to work relatively well without JIT anyway. Edge also has a JITless security mode iirc. Both seem to perform well enough and are more secure as a result.
0
0
11
@luke_warlow
Luke
8 months
Some great additions coming to next Safari! transition-behavior for discrete property transitions is great to see. As is PWA shortcuts support on macOS!
@jensimmons
Jen Simmons
8 months
Safari 17.4 beta is out ! So much in it, including: - @​scope - align-content on blocks - vertical form controls - <hr> inside <select> - <input type="checkbox" switch> - VP8/VP9 & WebM on iOS & iPadOS - Vorbis audio codec on iOS - Fullscreen API on iOS
37
77
530
1
0
11
@luke_warlow
Luke
10 months
First one of my showPicker additions is out, it now works for date and datetime-local inputs.
@webkit
WebKit
10 months
Safari Technology Preview 182 is available with updates to CSS, Forms, HTML, JavaScript, Loading, Media, Rendering, Scrolling, Storage, SVG, Text, Web API, Web Assembly, Web Inspector, and WebRTC.
Tweet media one
29
13
78
1
0
11
@luke_warlow
Luke
1 year
👀 Very early days for my proposal but thought l'd give it a prototype to see what it'd look like in practice.
@intenttoship
Intent To Ship
1 year
Blink: Intent to Prototype: Web Preferences API
0
1
22
0
1
10
@luke_warlow
Luke
8 months
Great to see alignment on this API, first WebKit ships and now chrome working to support the new syntax!
@intenttoship
Intent To Ship
8 months
Blink: Intent to Ship: CSS custom state new :state() syntax
1
3
9
0
0
10
@luke_warlow
Luke
7 months
@andrewtjoslin @PatrickJS__ Turns out I published that prototype to GitHub. Uses Vue reactivity and lit-html to give you a nice API for building composable web components. If we ever get open stylable shadow DOM I would honestly just use this for anything I needed.
1
0
9
@luke_warlow
Luke
9 months
Glad to see more accessibility variants. This time a forced-colors variant and utility, glad I could upstream them. Lots of other goodies too.
@adamwathan
Adam Wathan
9 months
🎁 Day 2... Tailwind CSS v3.4 is out! 🥳 🍬 Dynamic viewport units 🍩 `:has()` support 🧁 Direct children variant 🍰 New `size-*` utilities 🍪 Balancing with `text-wrap` 🍭 Subgrid utilities ...and more ✨
91
433
3K
1
0
9
@luke_warlow
Luke
8 months
@passle_ @43081j @justinfagnani @mvsamuel It'll be interesting to see how much of it survives the first breaking release. I'm curious if they'll realise standards aren't vibe based for a reason?
1
0
8
@luke_warlow
Luke
10 months
@peer_rich On the other hand competition is good and a renewed focus on headless UI should improve some of the missing features.
2
0
10
@luke_warlow
Luke
1 year
My very first browser contributions have made it into this release. Just a small bugfix on email inputs and textareas but hopefully more to come!
@webkit
WebKit
1 year
Safari Technology Preview 171 is now available with updates to Web Inspector, CSS, CSS Counter Styles, Web Animations, Rendering, JavaScript, Popover, Web API, and more.
Tweet media one
6
21
94
3
0
9
@luke_warlow
Luke
4 months
@RickByers @RogersKonnor Though I previously aligned WebKit and chromium with firefox for the vertical scrollbar case. This time I'm aligning Firefox with chromium and webkit. Except I've just found a bug in WebKit and chromium so I'll be doing patches to those too. Yay for interop.
2
0
10
@luke_warlow
Luke
5 months
@madebyfabian @joyofcodedev Tbf JSX is so different from HTML that react isn't really a fair comparison. But yeah Vue (and Angular I think?) have this "incorrect" behaviour too.
0
0
10
@luke_warlow
Luke
5 months
@CanadaHonk The justification for this change is really weird too. 'Some people asked for it and it was only a few lines of code'. I mean sure but it's also a massive footgun for making an interoperable package... Just cause it's easy doesn't mean you should do it.
2
0
9
@luke_warlow
Luke
3 years
@youyuxi Idk about the eventual full removal but it's worth noting the html spec change for the cross origin use case was approved by people from all three browser vendors. So at least that change isn't "Google breaking the web".
0
0
10
@luke_warlow
Luke
5 months
Tomorrow's (hopefully?) Chrome Canary has an update to the web preferences API where preferences now fire change events which should make the API much more ergonomic to use! That along with the new value property makes for much simplified code.
1
1
10
@luke_warlow
Luke
3 months
@jaffathecake The fact that certain eslint configs require this is what really gets my eyes rolling.
3
0
10
@luke_warlow
Luke
3 months
@piccalilli_ Lots of people have already got a go to way to solve a missing CSS feature so that's what they use. Even on new projects some people still reach for those workarounds. Same reason some people still reach for jQuery despite the DOM APIs being good enough.
1
0
9
@luke_warlow
Luke
1 year
@bramus I'll give ya a sneak peak 😉
@luke_warlow
Luke
1 year
Well that was surprisingly easier than I expected... (Tends to happen when you ignore the tougher implementation aspects lol) Alt: A video of my local Chromium build with a prototype of the Web Preferences API. Showing off it working.
4
6
31
1
0
9
@luke_warlow
Luke
3 months
Tweet media one
1
0
9
@luke_warlow
Luke
3 months
Trying to trace eval calls at least 2 iframes deep coming from a blob URL with source code that's seemingly not in the git repository is *not* how I expected this week to go 😅
3
0
9