It’s only a AAA (i.e. least critical) requirement, but justified text is an accessibility issue according to WCAG. https://www.w3.org/WAI/WCAG21/Techniques/failures/F88.html
HN user
danielnixon
https://github.com/oaf-project https://github.com/danielnixon/link-fixer https://github.com/danielnixon/eslint-plugin-total-functions https://github.com/danielnixon https://github.com/agiledigital/typed-redux-saga
You might like this https://www.berglas.org/Articles/ImportantThatSoftwareFails/...
Smartness is a zero-sum game
I like these two articles on the topic of Tristan Harris:
https://www.wired.com/story/tech-needs-to-listen-to-actual-r...
https://www.theguardian.com/news/2018/may/03/why-silicon-val...
I think about 'Why it is Important that Software Projects Fail' a lot.
https://www.berglas.org/Articles/ImportantThatSoftwareFails/...
It's been posted a few times over the years: https://news.ycombinator.com/from?site=berglas.org
I personally have never understood the point of trying to limit what actions are being dispatched. As long as your reducers and action creators are well typed, it shouldn't matter what other actions might be sent through.
The value comes when you consider what happens if a reducer (or saga or whatever) is updated in a breaking way (or removed wholesale).
Example: consider a scenario where you use `connected-react-router`, your codebase fills up with history actions being dispatched, then one day you remove `connected-react-router`, or its major version is updated and introduces some breaking change.
If you have a union type that includes all your own actions plus the `LocationChangeAction` from connected-react-router (and you use is consistently - e.g. your components take `Dispatch<YourAction>`) then you'll learn about the breaking change when your app fails to compile.
The alternative is you catch it later than compile-time, at worst _much_ later.
You might decide that the overhead in this scenario isn't worth it, and that's your call to make (I believe it is worth it) but hopefully this gives an idea of the point.
Nicholas Carr, 2015:
In suggesting that driving is no more than a boring, productivity-sapping waste of time, the Valley guys are mistaking a personal bias for a universal truth. And they’re blinding themselves to the social and cultural challenges they’re going to face as they try to convince people to be passengers rather than drivers. Even if all the technical hurdles to achieving perfect vehicular automation are overcome — and despite rosy predictions, that remains a sizable if — the developers and promoters of autonomous cars are going to discover that the psychology of driving is far more complicated than they assume and far different from the psychology of being a passenger. Back in the 1970s, the public rebelled, en masse, when the federal government, for seemingly solid safety and fuel-economy reasons, imposed a national 55-mile-per-hour speed limit. The limit was repealed. If you think that everyone’s going to happily hand the steering wheel over to a robot, you’re probably delusional.
There’s something bigger going on here, and I confess that I’m still a little fuzzy about it. Silicon Valley seems to have a good deal of trouble appreciating, or even understanding, what I’ll term informal experience. It’s only when driving is formalized — removed from everyday life, transferred to a specialized facility, performed under a strict set of rules, and understood as a self-contained recreational event — that it can be conceived of as being pleasurable. When it’s not a recreational routine, when it’s performed out in the world, as part of everyday life, then driving, in the Valley view, can only be understood within the context of another formalized realm of experience: that of productive busyness. Every experience has to be cleanly defined, has to be categorized. There’s a place and a time for recreation, and there’s a place and a time for productivity.
This discomfort with the informal, with experience that is psychologically unbounded, that flits between and beyond categories, can be felt in a lot of the Valley’s consumer goods and services. Many personal apps and gadgets have the effect, or at least the intended effect, of formalizing informal activities. Once you strap on a Fitbit, you transform what might have been a pleasant walk in the park into a program of physical therapy. A passing observation that once might have earned a few fleeting smiles or shrugs before disappearing into the ether is now, thanks to the distribution systems of Facebook and Twitter, encapsulated as a product and subjected to formal measurement; every remark gets its own Nielsen rating.
What’s the source of this crabbed view of experience? I’m not sure. It may be an expression of a certain personality type. It may be a sign of the market’s continuing colonization of the quotidian. I’d guess it also has something to do with the rigorously formal qualities of programming itself. The universality of the digital computer ends — comes to a crashing halt, in fact — where informality begins.
I heard an interesting critique of this from Liz Jackson at Webstock this year [0] [1] [2].
Unfortunately there are two problems with this ad. First, by relying on text without including visual descriptions, LEGO made their announcement inaccessible to the very people these bricks are intended for. Second, this product already exists.
LEGO could have partnered with Tack-Tiles, which currently retail for around $700, to make an affordable and commercially viable product. But instead, LEGO decided that Braille Bricks will be provided for free to selected institutions around the world. That LEGO Braille Bricks will be given charitably through their foundation, demonstrates how disabled people, as consumers, are consistently devalued so brands can achieve higher status. If you think about it, LEGO isn’t informing consumers about a new product that can be purchased. The ad can’t even be experienced by the very people these bricks are intended for. LEGO was virtue signaling.
[0] https://www.webstock.org.nz/19/speakers/liz-jackson/
[1] https://twitter.com/elizejackson/status/1121463716309098497
[2] https://www.criticalaxis.org/critique/lego-braille-bricks/
Nor in some cases even read at all https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-cont...
I like this one: https://news.ycombinator.com/item?id=13485953
Nicholas Carr wrote a great piece on this exact topic. You might like it.
It looks like his site is struggling so I'll include an archive.org link too.
Here are his last three paragraphs:
"There’s something bigger going on here, and I confess that I’m still a little fuzzy about it. Silicon Valley seems to have a good deal of trouble appreciating, or even understanding, what I’ll term informal experience. It’s only when driving is formalized — removed from everyday life, transferred to a specialized facility, performed under a strict set of rules, and understood as a self-contained recreational event — that it can be conceived of as being pleasurable. When it’s not a recreational routine, when it’s performed out in the world, as part of everyday life, then driving, in the Valley view, can only be understood within the context of another formalized realm of experience: that of productive busyness. Every experience has to be cleanly defined, has to be categorized. There’s a place and a time for recreation, and there’s a place and a time for productivity.
"This discomfort with the informal, with experience that is psychologically unbounded, that flits between and beyond categories, can be felt in a lot of the Valley’s consumer goods and services. Many personal apps and gadgets have the effect, or at least the intended effect, of formalizing informal activities. Once you strap on a Fitbit, you transform what might have been a pleasant walk in the park into a program of physical therapy. A passing observation that once might have earned a few fleeting smiles or shrugs before disappearing into the ether is now, thanks to the distribution systems of Facebook and Twitter, encapsulated as a product and subjected to formal measurement; every remark gets its own Nielsen rating.
"What’s the source of this crabbed view of experience? I’m not sure. It may be an expression of a certain personality type. It may be a sign of the market’s continuing colonization of the quotidian. I’d guess it also has something to do with the rigorously formal qualities of programming itself. The universality of the digital computer ends — comes to a crashing halt, in fact — where informality begins."
https://www.roughtype.com/?p=5813
https://web.archive.org/web/20160306010921/https://www.rough...
Nor with a keyboard. https://www.w3.org/TR/2016/NOTE-WCAG20-TECHS-20161007/F78
This site recommends Tristan Harris's work pretty prominently.
For a sober take on Harris and "tech humanists" more generally, check out "Why Silicon Valley can’t fix itself" by Ben Tarnoff and Moira Weigel.
https://www.theguardian.com/news/2018/may/03/why-silicon-val...
They talk about inclusive design and then make it impossible to tell which element has keyboard focus.
This[1] typechecks in Flow but not in TypeScript:
/* @flow */
interface HasIdentityFunction {
id<A>(a: A): A
}
class Example implements HasIdentityFunction {
id<A>(a: A): number {
return 42;
}
}
var x: string = (new Example(): HasIdentityFunction).id("hello")
[1] https://twitter.com/puffnfresh/status/1077072700609159168As one counter example: you'll never make a modal popup accessible without JavaScript. The focus management required is impossible with "CSS only".
Numerous accessibility issues here. Many of these examples can't be operated by a keyboard, for example. "CSS only" is not a virtue if it comes at the cost (as it always does) of needlessly excluding people from the web.
Speaking of le Carré, you might enjoy this exchange between Rushdie, Hitchens and le Carré in The Guardian: http://www.rjgeib.com/thoughts/burning/le-carre-vs-rushdie.h...
The first paragraph mentions Salman Rushdie, which reminded me of this[0]. For anyone interested in free speech, victim blaming and such, these Dahl quotes are interesting:
'In a letter to The Times of London, Dahl called Rushdie "a dangerous opportunist," saying he "must have been totally aware of the deep and violent feelings his book would stir up among devout Muslims. In other words, he knew exactly what he was doing and cannot plead otherwise. This kind of sensationalism does indeed get an indifferent book on to the top of the best-seller list, — but to my mind it is a cheap way of doing it." The author of dark children's books and stories for adults (who himself once had police protection after getting death threats) also advocated self-censorship. It "puts a severe strain on the very power principle that the writer has an absolute right to say what he likes," he wrote. "In a civilized world we all have a moral obligation to apply a modicum of censorship to our own work in order to reinforce this principle of free speech."'
[0] http://www.nytimes.com/2007/07/04/arts/04iht-15donadio.64826...
Not true. Nullable values in a database can be dealt with (and I would argue _should_ be dealt with) using a maybe/option[1] type. This is exactly what Slick[2] does, for example.
[1] https://en.wikipedia.org/wiki/Option_type [2] http://slick.lightbend.com/
As soon as I see "pure CSS" or "CSS only" this is the first thing I think of. This meme that "pure CSS" is a Good Thing is a shame.
Your a:hover styles should also be applied to a:focus [0]. You might also want to read about why using only color to differentiate links is bad practice [1].
[0] http://www.456bereastreet.com/archive/201004/whenever_you_us...
Related[0]:
"Many people with cognitive disabilities have a great deal of trouble with blocks of text that are justified (aligned to both the left and the right margins). The spaces between words create "rivers of white" running down the page, which can make the text difficult for some people to read. This failure describes situations where this confusing text layout occurs. The best way to avoid this problem is not to create text layout that is fully justified (aligned to both the left and the right margins)."
Your question reminds me of Peter Suber's excellent book, The Paradox of Self-Amendment [0].
For contrast, maybe check out either HTML_CodeSniffer [0] or Vision Australia's Colour Contrast Analyser [1]. Also this Bootstrap issue [2], which references a couple more.
The problem with being pure CSS is that you're hiding inputs and styling their labels to appear (visually) as their replacements (against the labels' semantics).
If you're going to hide the inputs (in the three cases of labels with class "button", "radio" and "checkbox") and style labels against their semantics, you need to use JavaScript to fix the accessibility issues this introduces. I don't think there's a non-JavaScript, non-ARIA solution to the accessibility issues (other than not hiding the inputs in the first place).
So I think there are three options:
1. Hide inputs, style labels (status quo) and use JavaScript, ARIA, tabindex, etc to fix accessibility issues.
2. Don't hide inputs, remain pure CSS, avoid accessibility issues in the first place.
3. Ignore accessibility issues.
[0] https://squizlabs.github.io/HTML_CodeSniffer/