HTML attributes for improved accessibility and user experience
htmhell.dev
htmhell.dev
It would have been nice to include a brief explanation of all the ways this feature is likely to break what you expect.
For example, recent versions of Chrome will autocomplete against a table of values across all domains for the given field "name" attribute, regardless of what you put into the autocomplete attribute [0].
I suppose this would be a fine decision if all form fields in all forms represented a global, singular datum (i.e., My Account), but it is not fine at all when dealing with collections of things (i.e., Cars, Parts or whatever).
I managed to recently work around this by generating unique-ish ids for name fields and autocomplete attributes, then fixing them before submission.
I'm obviously still salty.
[0] https://stackoverflow.com/questions/12374442/chrome-ignores-...
“No one” is going to do meaningful cross-reader testing. The only reason “anyone” does any accessibility work at all is the law (and thank god for it).
[0] https://graypegg.com/2023/11/25/the-private-definition-of-ac...
I’ve never seen a legitimate use case for disabling autocomplete, but have been prevented from using my password manager on many occasions, resulting in me having to either modify the source code via developer tools, type a very long password, or copy and paste it. Both of the last two cases increase the attack surface for passwords via key logging or clipboard snooping.
The one case that has come close to being legitimate is shared computers, but that should be handled by security controls on the endpoint.
It's so effing stupid and short sighted.
The main one is going to be any kind of web system where the user is typing in other people's details.
Search fields can also be a bit annoying - I've seen Firefox autocomplete entries in search fields that make no sense.
For example, Firefox suggests my postal code as a search term here on HN.
The article says "You can improve the user experience" with it, but never actually demonstrates that. It then starts talking about some SEO stuff, but it's still not super clear what it actually does?
When I have questions about a concept and I use the english word for it (because I never learned CS in French and would not understand the French page), the first Wikipedia page will still be in French, because of those shitty tags. Honestly, those are only useful if the words are the same in multiple languages.
As for me, this recent changes get on my nerves, and are one reason why I'm not using Google anymore.
I changed the settings multiple times, disabled the auto-detect language, but it always leaks in on suggestions or results.
Just like there's no way to make Youtube disable autoplay of videos. One week later or so, it reverts back to its default behavior.
Or for Google to respect that the account I'm using right now is the one I want to use instead of the first one I logged in many days ago.
/s because, you know.
While on vacation google decided to switch me to chinese even though I was logged in with an account that was set to english for decades on a browser that didn't change. The only way to change that back is to go to your account settings, and all the links leading there are ... in chinese. Even once back home this language change persisted. At no point did Google ever get an `Accept-Language: zh*` from me or any other indication that I wanted to switch languages besides the IP I'm connecting from which means fuck all.
Hanlon's razor strikes again.
The other day someone here (ostensibly a site for tech people) argued that the `Accept` header is useless, we can all just put random query string parameters or extensions in the URL to tell the server what content type we expect back, so I wouldn't be surprised if Google developers simply fail to see the point of the Accept-Language header.
If you go to myaccount.google.com/language , you can remove languages you don't actually speak, or turn off automatically adding languages altogether. It doesn't always work for everything, but it's a good signal.
I agree there should be a way to force this better, but there's a bunch of work being done on it.
You can add a hl=en parameter to the URL, and most Google apps will respect it.
I live in a non-English speaking country.
The vast majority of people use their device in the local language, and for any browser to see the OS is set to - let's say, Thai - and then just proceed to send accept-language: en is just absurd.
The other possibility is that these people who can not understand English, somehow manage to use a device set to English language on a daily basis. Also, absurd.
Unless you can point to some kind of evidence that shows Accept-Language is set to English regardless of the host OS' language/region setting, there's zero reason to believe this claim.
> It's not that they cannot use English
Right, the entirety of non-english speaking, internet-using humans are able to read English, it's just a bunch of them choose not to, but only when it comes to using a webpage? Is that what you're suggesting?
Edit:
I just did some very quick testing of the theory that browsers will send the "wrong" Accept-Language header.
* Safari on macOS with preferred OS language set to English (Australian) sends `en-AU,en;q=0.9`
* Safari on macOS with preferred OS language set to Thai (and second pref of English) sends `th-TH,th;q=0.9`
* Chrome on macOS with preferred OS language set to English (Australian) for some reason sends `en-GB,en-US;q=0.9,en;q=0.8`
* Chrome on macOS with preferred OS language set to Thai (and second pref of English) sends `th-TH,th;q=0.9`
* Edge on Windows 11 with preferred OS language set to Thai (and second pref of English) sends `th,en;q=0.9,en-GB;q=0.8,en-US;q=0.7`
* Chrome on Windows 11 with preferred OS language set to Thai (and second pref of English) sends `th-TH,th;q=0.9`
Firefox is the one that can get it wrong, sometimes: in the macOS VM, I had already downloaded Firefox before setting the OS language to Thai, and the downloaded versions set a browser preferred language which doesn't change based on the OS language (the default is US English).
But when I downloaded Firefox using Edge in the Win11 VM, the language was already set to Thai, so I got a "Thai preferred" download link when I typed "Firefox" in the search bar, and thus the language string it sends is not surprising: `th,en-US;q=0.7,en;q=0.3`
So, again: without some evidence to show that somehow people who have no understanding of English, are using their computers or phones or tablets in English, I'm calling bullshit on this repeated claim that "non english user's browsers send requests for English language content".
In many counties, users have their OS/Browser settings set to English only, when they actually also speak other languages (or in certain countries, exclusively other languages). There's also a bunch of complexity in regards to spoken/written language comprehension, but I won't get into that here.
There is much more engagement when Google presents content in languages people actually know (or, rather, languages Google thinks they know), regardless of what their Accept-Language header is.
Unfortunately, I cannot present you with hard stats, as I no longer work there. I'm sorry that's unsatisfactory, and I'm not asking you to blindly trust the word of a stranger. Just wanted to offer up some insight into why the system behaves as it does sometimes.
Sometimes these people cannot switch the interface language of the operating system. For example٫ Windows Single Language edition forbids changing the language of the interface, and it is common in developing countries.
There are browser settings you can force or failing that, an extension.
Same with all the other rants above. Turning off autoplay in Youtube has become a weekly tradition here, like watering the cactus.
<link href="https://example.com/de" rel="alternate" hreflang="de" />
That is a really cool idea, but does any browser actually do anything with this info? Maybe search engines do but it would be really cool if the browser could pop up something like "This page is also available in German, [Visit]" to help the user. Finding the "English" link, which may be spelt in the page language, or be a US or UK flag is not a fun task when I stumble across a page of the wrong language.Yes, because it’s an article about attributes…
The only thing missing is how to display the table rules, but from a semantic point of view. Namely, I would kind of un-obsolete the table BORDER attribute, as it gives the information that seeing the rules is somewhat important. Or maybe an attribute being more explicit than it is a semantic value, meaning rules are sufficiently important, for instance a rule level, that a css or a hardcoded css (could still be dynamically configured) would choose to display or not. For instance, like a WEIGHT attribute with NORMAL(default) and STRONG value, or directly a STRONG attribute, even though un-obsoleting BORDER changing the definition of its value being a scale of it strenght (0, rules would not be displayed, not 0 rules would displayed in hardcoded css) would fairly enough.
https://webaim.org/techniques/tables/
(I am not talking about the abomination of the semantic web from a decade ago)
I've heard of no-JS users, but no-CSS users sounds like an April Fools joke.
A few lines of <style> + appropriate usage of HTML content tags is almost certainly going to be less bytes than abusing <table> for layout.
Holy shit that’s been a thing for ten years and I didn’t know about it??
(I’d actually completely forgotten it was a recent addition rather than from the pre-HTML-5 era.)
To be clear, it only makes the numbers descending rather than ascending. The phrasing above implies it rearranges the list.
<ol reversed>
<li>Three
<li>Two
<li>One
</ol>
<ol>
<li value=3>Three
<li value=2>Two
<li value=1>One
</ol>
Note also that reversing content via CSS is generally unwise, because things like screen readers, text selection and tab indexing operate on DOM tree order.Custom controls are the enshittification of the <video> tag. IMHO there's no custom video component that allows the user to control volume, picture-in-picture, AirPlay, control speed and scrubbing better than the standard controls, especially on mobile.
I’m not a web dev so I might be missing something obvious… but…
Why the obsession with binding languages to a url (resource)?
There’s an accept-language http header that will respect the user’s languages in desired order… I can understand you as a user might want to be able to overwrite it for a specific site so that they can workaround a badly translated site, but even for that purpose you can use a simple opt-in cookie…
But why attach it to a resource (url)??? Now when I share the url it will not respect the language preferences of the one I share it too…
And even if you wish to be able to share a specific language version of a website, why not have these as an extra layer that redirect with a cookie setting that language and then just use again the regular url…
Honestly this boggles my mind… why why… can web developers and their managers please respect http standards… with the german trial case we might see some traction with DNT, so there’s that. Please also respect my language setting.
Fun (read supper annoying) fact: ever worse is trying to use ip to map it to location and then deduce language like that… I live in Belgium and how many times I’ve received a French version of a site is mind boggling… sorry very sorry, but I’m not fluent in French. I can survive in it, but I don’t want to consume websites in it if I don’t have to.. if you actually would respect my browser settings (accept-language) you would know better… zzz