Interestingly, focus states are used in accessibility. So while this code isn’t to cure cancer, it likely does improve the lives of those with different needs.
it’s starting to make sense, what exactly does the meme want me to do about focus states so it can be read properly by screen reader software/used by keyboard navigation?
CSS has a pseudo-class, :focus-visible, that matches when an element is focused using keyboard navigation. It also has :focus-within, which matches when the current focused element is the selected element or one of its descendents. However, this applies not only for keyboard navigation but also mouse and tap focus. A pseudo-class that combines the two, :focus-visible-within, would be useful, but does not currently exist. Here’s an article about it: https://larsmagnus.co/blog/focus-visible-within-the-missing-pseudo-class
The code in the meme implements the logic of :focus-visible-within using the new :has() functional pseudo-class, and has a snippet of fallback behavior for slightly older browsers
Good frontend work is HARD. It requires both design and engineering knowledge, and it’s very easy to write unmaintainable or inaccessible code. It also requires a high amount of backend work via BFFs, load balancing, hosting and serving, credential management, and more. The cherry on top is that it’s basically all async code.
To be clear, I’m talking about the types of
FEs used by thousands internationally, fully adherent to WCAG 2.2 (and above), and with rich interactivity. I’m not talking about someone’s hobby project with a couple dozen users at best.
Seeing backend elitists diminish its worth is tiring as all hell. To me, it indicates that the person is either new to the industry or looking for a sense of superiority because they don’t understand FE work. It’s meaningless and exhausting to read.
The first part of this article is taking about naming, and then heavily implies “CSS/HTML is not a programming language” is equivalent to devaluing front end developers. But that’s not the case, at least not for me.
Front end is hard. It is obnoxiously hard and requires both artistry and technical skill. And it’s critical to the success of anything that has a front end.
But I still say, “CSS/HTML is not a programming language”, because they’re not Turing complete. A programming language is something you can write a program in, without any other languages. It’s a matter of definition, not a matter of valuation. CSS and HTML are difficult and critical to get right but they’re a different kind of thing from programming languages.
And semantically, logically, you are 100% correct. But there are other, subjective, emotional, layers to language.
Billionaire, business magnate, and oligarch can mean the exact same thing, but they have very different emotional meanings and associated contexts.
I think the author may have a point that by spreading the “HTML is not a programming language” meme, we may be contributing to its lower subjective status.
But this thesis is, by its very nature, subjective, of course.
To me that ‘meme’ is like someone making an “Eggs aren’t meat” meme. Technically correct, I agree with the factual part of the statement, but the meme is dumb and pointless, like a bad joke. Unless the point is to belittle, in which case the poster deserves to be forced to do front end dev and deal with irrational user complaints until they repent or end up huddled in a corner mumbling incoherently, either or.
It’s like sexism. I don’t have time for that shit. If people were being sexist, bigoted, or belittling frontend devs at my job I’d tell them to get their heads out of their asses, or find a new job and then tell them. Fortunately I currently work with people who don’t suck.
I feel like this article is completely missing my point.
I’ve done my share of programming websites but not for the past 2 decades. And now I’m completely lost at reading CSS. I can’t make sense of the code shown in the picture. And that’s always been my trouble with CSS: the tendency to unnecessarily over-complicate things while reinventing the wheel.
They have created a huge barrier for entry to the world of website programming and I think it’s a shame.
That’s an honest criticism that does not intend to devalue frontend. But there’s an overlap where “over-complicate” may imply that frontend (tools) should be uncomplicated.
Having only done a few frontend projects in recent years, I see obvious value to new, more powerful CSS selectors and even things like Tailwind. I can’t read Tailwind yet, but making intuitive user interfaces that work well on all kinds of devices for all kinds of people (screen readers?) is difficult and should not be expected to be simple, IMO. But this is a matter of opinion.
The ones most qualified to deal with that issue are, obviously, experienced frontend devs and they build these things.
I agree with everything you said, that’s fair. But I do not remember having to much difficulties coding UI interfaces in Qt while supporting numerous end-user configurations.
I see you are a thin skinned idiot that can’t understand your own fucking link
I find what most of those people actually mean is: HTML and CSS aren’t scripting languages. Which: a) of course they aren’t; and b) is not really the point at all.
my point is that css is meant to determine appearance and logic should be handled elsewhere.
I appreciate your clarification: you mean that the logic part of conditional appearance should be handled by, for example, changing a property on an HTML node, and styling that property in CSS, did I get that right?
If I may offer some feedback in return, I would recommend you work on your phrasing. Insulting people can easily lead to being ignored or having low-value interactions. Asshole. 😉
what the fuck am I even looking at? Css is to make styles not cure cancer
Interestingly, focus states are used in accessibility. So while this code isn’t to cure cancer, it likely does improve the lives of those with different needs.
bingo, i made this meme while doing accessibility improvements at work
it’s starting to make sense, what exactly does the meme want me to do about focus states so it can be read properly by screen reader software/used by keyboard navigation?
CSS has a pseudo-class, :focus-visible, that matches when an element is focused using keyboard navigation. It also has :focus-within, which matches when the current focused element is the selected element or one of its descendents. However, this applies not only for keyboard navigation but also mouse and tap focus. A pseudo-class that combines the two, :focus-visible-within, would be useful, but does not currently exist. Here’s an article about it: https://larsmagnus.co/blog/focus-visible-within-the-missing-pseudo-class
The code in the meme implements the logic of :focus-visible-within using the new :has() functional pseudo-class, and has a snippet of fallback behavior for slightly older browsers
thanks for the explaination!
I see you too are a backend enjoyer who is tired of modern frontend development. I highly recommend reading this:
https://joshcollinsworth.com/blog/devaluing-frontend
Thanks for posting this.
Good frontend work is HARD. It requires both design and engineering knowledge, and it’s very easy to write unmaintainable or inaccessible code. It also requires a high amount of backend work via BFFs, load balancing, hosting and serving, credential management, and more. The cherry on top is that it’s basically all async code.
To be clear, I’m talking about the types of FEs used by thousands internationally, fully adherent to WCAG 2.2 (and above), and with rich interactivity. I’m not talking about someone’s hobby project with a couple dozen users at best.
Seeing backend elitists diminish its worth is tiring as all hell. To me, it indicates that the person is either new to the industry or looking for a sense of superiority because they don’t understand FE work. It’s meaningless and exhausting to read.
Tldr: I agree
The first part of this article is taking about naming, and then heavily implies “CSS/HTML is not a programming language” is equivalent to devaluing front end developers. But that’s not the case, at least not for me.
Front end is hard. It is obnoxiously hard and requires both artistry and technical skill. And it’s critical to the success of anything that has a front end.
But I still say, “CSS/HTML is not a programming language”, because they’re not Turing complete. A programming language is something you can write a program in, without any other languages. It’s a matter of definition, not a matter of valuation. CSS and HTML are difficult and critical to get right but they’re a different kind of thing from programming languages.
And semantically, logically, you are 100% correct. But there are other, subjective, emotional, layers to language. Billionaire, business magnate, and oligarch can mean the exact same thing, but they have very different emotional meanings and associated contexts.
I think the author may have a point that by spreading the “HTML is not a programming language” meme, we may be contributing to its lower subjective status.
But this thesis is, by its very nature, subjective, of course.
To me that ‘meme’ is like someone making an “Eggs aren’t meat” meme. Technically correct, I agree with the factual part of the statement, but the meme is dumb and pointless, like a bad joke. Unless the point is to belittle, in which case the poster deserves to be forced to do front end dev and deal with irrational user complaints until they repent or end up huddled in a corner mumbling incoherently, either or.
It’s like sexism. I don’t have time for that shit. If people were being sexist, bigoted, or belittling frontend devs at my job I’d tell them to get their heads out of their asses, or find a new job and then tell them. Fortunately I currently work with people who don’t suck.
I feel like this article is completely missing my point. I’ve done my share of programming websites but not for the past 2 decades. And now I’m completely lost at reading CSS. I can’t make sense of the code shown in the picture. And that’s always been my trouble with CSS: the tendency to unnecessarily over-complicate things while reinventing the wheel. They have created a huge barrier for entry to the world of website programming and I think it’s a shame.
That’s an honest criticism that does not intend to devalue frontend. But there’s an overlap where “over-complicate” may imply that frontend (tools) should be uncomplicated.
Having only done a few frontend projects in recent years, I see obvious value to new, more powerful CSS selectors and even things like Tailwind. I can’t read Tailwind yet, but making intuitive user interfaces that work well on all kinds of devices for all kinds of people (screen readers?) is difficult and should not be expected to be simple, IMO. But this is a matter of opinion.
The ones most qualified to deal with that issue are, obviously, experienced frontend devs and they build these things.
I agree with everything you said, that’s fair. But I do not remember having to much difficulties coding UI interfaces in Qt while supporting numerous end-user configurations.
I see you are a thin skinned idiot that can’t understand your own fucking link
my point is that css is meant to determine appearance and logic should be handled elsewhere.
Well, ehm… Thank you for the feedback I guess?
I appreciate your clarification: you mean that the logic part of conditional appearance should be handled by, for example, changing a property on an HTML node, and styling that property in CSS, did I get that right?
If I may offer some feedback in return, I would recommend you work on your phrasing. Insulting people can easily lead to being ignored or having low-value interactions. Asshole. 😉
CSS has always combined the styling and the logic for the styling. CSS selectors implement logic to determine where to apply styles
That’s wizards c
hess