Web Design for Terminal Browsers A guide to web design for terminal browsers finds that JavaScript is absent in all five major text engines—w3m 0.5.6, lynx 2.9.3, links 2.30, elinks 0.20.0, and Emacs EWW—and CSS is largely ignored except for partial support in elinks, making `display:none` by class ineffective and `alt` text the primary image content. The author proposes 8 rules for terminal-friendly publishing, emphasizing DOM order and avoiding hidden content via CSS. Web Design for Terminal Browsers This is a purely-for-fun exercise: a guide to web design for terminal browsers. Starting from the text browsers people actually use, I am going to pull out a set of rules in case you ever decide to build a site meant to read and look its best in a terminal. It is not an alternative to Gemini, Gopher or a smallweb attempt, but a set of best practices so your site reads well in a terminal browser, and even so you can build Web Apps for the terminal. Five engines, one test The first step is to install the five text engines people actually use and feed them the same test pages, isolating one feature at a time. w3m 0.5.6 : the most capable with tables, and it even draws images in terminals that allow it. lynx 2.9.3 : the patriarch, the lowest common denominator since 1992. links 2.30 : fast, with a little bit of CSS. elinks 0.20.0 : the cousin with bigger ambitions, it even has an optional CSS engine. EWW : the Emacs one. Now we look for the compatibility crossovers. You test HTML and CSS features and see how each engine interprets them. The results: | Feature | EWW | w3m | lynx | links | elinks | |---|---|---|---|---|---| | JavaScript | No | No | No | No | No |