Hacker News new | past | comments | ask | show | jobs | submit login

There's an amazing 10min !!Con 2016 talk by Sina Bahram, How I Code and Use a Computer at 1,000 WPM!!

I use a computer very differently than most people, because I’m blind. When I’m surfing the web, tweeting, checking email, reading the news, and writing code, I’m doing so because a program called a screen reader is reading me what’s on the screen. I happen to listen to it read me this text at a thousand words per minute! Join me in listening to how I experience some common user interfaces. Yes, I’ll slow it down for you. I also have a challenge for everyone in the audience. Can you get through a day only using the keyboard? What about not looking at your screen?

Sina Bahram is an accessibility consultant, researcher, and entrepreneur. He is the founder of Prime Access Consulting (PAC), an accessibility firm whose clients include high-tech startups, fortune 1000 companies, and both private and nationally-funded museums.

https://www.youtube.com/watch?v=G1r55efei5c




> There's an amazing 10min !!Con 2016 talk by Sina Bahram, How I Code and Use a Computer at 1,000 WPM!!

At 6:28, Bahram points out how HN (!) is not very accessible to screen readers.


At some point in there, he says, "Table? Is this 1999?"

pg explained several years ago why Arc's web library, and by extension HN, uses tables. [1]

> Arc embodies a similarly unPC attitude to HTML. The predefined libraries just do everything with tables. Why? Because Arc is tuned for exploratory programming, and the W3C-approved way of doing things represents the opposite spirit.

[...]

> Tables are the lists of html. The W3C doesn't like you to use tables to do more than display tabular data because then it's unclear what a table cell means. But this sort of ambiguity is not always an error. It might be an accurate reflection of the programmer's state of mind. In exploratory programming, the programmer is by definition unsure what the program represents.

> Of course, "exploratory programming" is just a euphemism for "quick and dirty" programming. And that phrase is almost redundant: quick almost always seems to imply dirty. One is always a bit sheepish about writing quick and dirty programs. And yet some, if not most, of the best programs began that way. And some, if not most, of the most spectacular failures in software have been perpetrated by people trying to do the opposite.

> So experience suggests we should embrace dirtiness. Or at least some forms of it

It seems to me that the iconoclastic, anti-authoritarian, "unPC" hacker spirit reflected here can be taken too far, and this sometimes has a negative impact on the experience of some users, as Sina demonstrated. Now that HN's core UI is way beyond the exploratory phase, I wonder if it's time to re-do some of the markup in a more structured way.

[1]: http://paulgraham.com/arc0.html


pg was just wrong here. Or rather, it's a position that could've made sense at the time, but only if the thing you're most interested in experimenting with were mocking up page layouts to e.g. present to users for UX testing; layouting in 2008-era CSS was not something you necessarily wanted to do up-front, whereas with tables you could at least copy some boilerplate and have at it. (It makes no sense in context; it doesn't make sense in most contexts. But it is a position which could've been defensible at the time in a different context. Problems with tables include that (a) you don't want to write into a table layout; it's at best tolerable if you paste text into a template, and (b) there is no natural transition away from a table layout other than just redoing the layout wholesale. So even if you're experimenting with it, you probably should not ever let it go into production, because once it's there you will get convinced to leave it there for a long, long time.)

It's been a somewhat less sensible position since flexbox support became widespread, and is frankly just wrong in 2017.


On one hand... the idea that tables used for representing tabular data and tables used for layout couldn't be distinguished and managed functionally is odd. Lynx could handle table layouts reasonably well by the end of the last century, and I don't think you'd even need an ML model to code up some reliable heuristics and get them into most browsers, though I expect ML could be used to pretty good effect.

On the other hand, getting universal buy-in on a different approach to semantics and ubiquitous client adoption is harder than just buying into the agreed on semantics. And that recognizes the opposite of the hacker spirit. "Real hackers", if that term means anything, recognize the value of adhering to semantics by convention in all sorts contexts, even lisp-y ones. And while I have no idea what other things Arc's web library does, it's pretty clear to me that there's little if anything in HN's layout that wouldn't benefit from using CSS over tables for managing layout.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: