Lynx is probably the most popular text browser. Its competitors include w3m, links, telnet, and nc.

What it supports (the notable things):

  • Tables. However, once a table gets too wide, it goes into ugly mode, where it is flattened out.
  • Frames. The links to frame pages are displayed as follows:
    FRAME: foo.html
    FRAME: bar.html
  • Cookies. You can actually configure a lot for the cookies. Right now, I have mine set up so that it will read the persistent cookies from one file, and write to another. This way I do not accumulate any cookies that I do not want. While lynx has a system of Deny/Ask/Allow for each domain, I cannot find a way to get it to save the information between sessions. Instead, I could set the reject and accept variables, but that's kinda inconvenient.
  • Client-side image maps. These are displayed as [USEMAP: imgname.jpg]. If you hit enter on the link, lynx will give the list of all the possible links in that area. It makes the web equivalent of "Where's Waldo" quite easy, usually.
What it does not support (just some things I've noticed):
  • Server-side image maps. Because of the way these are implemented, lynx is only capable of complaining that it does not support them.
  • Style sheets. The style sheets are really a graphical browser thing. Fortunately, since they mainly concern layout, the pages that use CSS are still readable.
  • Embedded images, javascripts, MPEGs, audio, etc. You can, however, download the files, and use a separate viewer. Lynx even has the ability to automatically start the correct viewer based on the MIME type. On the upside, this means that popup ads do not work, and inline ads are just not ads anymore (unless they have ALT tags). Best of all, this means that some sites just don't have their normal effect.