Over the years I've been surfing and developing in the Web, I've learned a lot of little details that are often overlooked by Web developers. This site outlines some of them.
What HTML Is and Isn't
TIP: Know the nature and limitations of HTML, and the purposes for which it was created, and work with them instead of trying to work around them.
I'll start with a few words about the nature of HTML. HyperText Markup Language is just what its name implies: a text markup language. It is not a page layout language. HTML is intended to describe the logical structure of a text document, which can also contain some inserted graphical elements. HTML is not intended to reproduce the precise appearance of a visual effect dreamed up by an artist. It is, rather, intended to allow information to be structured in a manner that can be rendered in an understandable manner on everything from a designer's wide-screen professional workstation to a text-mode VT100 terminal to a blind person's audio text reader. Always keep this in mind if you want to produce Web pages that work well on a wide variety of systems.
Those who seek to achieve pixel-perfect layouts in Web pages will usually resort to all sorts of convoluted, nonstandard tricks that contort the logical structure of their document, and often degrade poorly on browsers that don't support all the features that are used, or when viewed on systems that are in any way different from that of the designer. For instance, the extensive use of hardcoded pixel widths in tables leads to pages that won't resize for different screen widths, so users with larger screens have excessive white space and users with smaller screens have to scroll left and right.
I'm not saying you should never use tricks to improve the visual appearance of a site, but don't do it at the expense of the underlying structure. Start by learning the basics of HTML and designing good, clean pages, and then carefully add bells and whistles, with attention to whether they'll produce bad side effects for some users. Unfortunately, many Web developers are using "WYSIWYG" (What You See Is What You Get) development tools like Microsoft FrontPage and Netscape Composer (a.k.a. "Composter", though I hear the newer version in Mozilla-based browsers was much better than its predecessors), and these editors often use weird, nonstandard visual tricks and conceal from the developer their use of illogical code which often fails to work on browsers other than the one the tool's developer had in mind. Personally, I do all my development using plain-text editors, so that every bit of coding is precisely as I want it.
TIP: Know the standards of HTML, even (especially!) when you intend on breaking them for a purpose.
Web War III
In the newsgroup comp.infosystems.www.authoring.html, there's been a "holy war" going on between HTML purists and graphical designers. I'm towards the side of the purists, but I'm not a fundamentalist. I'm willing to use a nonstandard feature, even if it causes my pages to fail to "validate", as long as I'm careful in using it and know what effect it has, both on browsers that support the feature and those that don't.
Sidebar: The two warring camps can be termed the structuralists on one hand, and the presentationalists on the other. Structuralists, usually coming from a background such as programming or engineering, are mostly interested in the logical structure of documents, wanting it to be sound and sensibly defined to make the documents usable by a wide range of (graphical, text, audio, or other) browsers and search engine indexers, and don't mind that the actual appearance of the document can vary greatly on different systems. Presentationalists, on the other hand, usually come from a graphical arts or design background and see a Web page as being primarily a visual experience that they'd like to define down to the pixel level, and get frustrated that they don't have as much control over the user's environment as they'd like; as they think visually instead of logically, they don't know or care how non-visual user agents such as search-engine indexers will deal with their pages.
Presentationalists accuse structuralists of liking boring-looking sites with grey backgrounds and no graphics. Structuralists accuse presentationalists of liking content-free sites full of empty glitz. There's both some truth and some exaggeration to both sides' characterizations, but mainly, the two sides are just coming from totally different mindsets about what a Web site is for and what aspects of it are most important, and they effectively speak different languages. This makes communication very difficult, though both types of people are probably needed to create any large-scale Web site. In recent times, there are some signs the two camps might be able to come back together, through the use of stylesheets to define presentational details in a separate document from the logical document structure defined through HTML code.
A complete itemization of the personality types or mindsets of Web development would also have to mention some other groups, including the usabilityists, interested primarily in the ergonomics of the user interface (how easy it is for average people to use, rather than how logical its abstract structure is or how pretty it looks), and the contentists, interested purely in getting their information content online without particularly caring how logical, aesthetic, or usable it is.
The structuralist approach to Web development tries, as much as possible, to develop sites in a way that reflects the logical structure of the information being presented, using as few as possible of elements inserted merely for their visual effect but carrying no logical structure. Ideally, the visual presentation of a Web page is an emergent property, occurring as spontaneous order from the interaction between the author's logically-marked-up content and the viewer's browser configuration, rather than a "centrally planned" artifact specified to the most minute detail by the designer.
In the pages of this site, I'll discuss some of the ins and outs of various elements of a Web site, such as directory structures, graphics, page titles, and colors. You'll learn some details that will help your site remain readable on all browsers from Lynx to Safari, be accessible to the handicapped, get indexed well in search engines, and have memorable, stable URLs for the various sub-sections of the site. Maybe you won't agree with me on all these things, and you'll choose to do some things in your site the opposite way from how I advise, but at least you'll be doing it by careful consideration of the pros and cons, rather than simply by default because you didn't know otherwise!
Web accessibility to the handicapped is becoming a political issue these days. A column in Reason magazine lambasts government attempts to mandate such accessibility. This brings up the obvious question: Do I support the government mandating that sites be accessible?
That's an easy one. The answer is, "Hell no!" I'm a Libertarian, and thus oppose any sort of government mandates regarding how you create your Web sites, or any other peaceful activities consenting adults may wish to engage in. I furthermore distrust the government enough to lack any confidence that any such mandates won't go to ridiculous extremes, like compelling sites to take down audio files of Beethoven's symphonies and images of Van Gogh's masterpieces because there is no meaningful way of making them accessible to the deaf and blind respectively, and hence, in the mindset of some bureaucrat, everyone should be denied them equally.
That said, I also think the anti-mandate crowd (including the Reason columnist) go too far in ridiculing the very concept of Web accessibility and implying that making sites accessible would impose an excessive burden. That's not true either. While some content (like the above-mentioned symphonies and paintings) is inherently inaccessible to certain groups of people, the vast majority of the Web's content can be fully accessible if it's done in a logically-structured, gracefully-degrading way. The rest of my Web Tips will explain lots of methods you can use to ensure this. Web authors learning how to be careful and logical in their site design will solve more accessibility problems than any bureaucrat can.
(Incidentally, the online version of the Reason column works fine in text browsers like Lynx and audio browsers like pwWebSpeak; it's an example of an accessible Web document even while it criticizes this concept.)
Make your site better by looking at other sites that show, by example, what not to do!
NOTE: The inclusion of a site in my "Hall of Shame" links should not be construed as any sort of personal attack on the site's creator, who may be a really great person, or even an attack on the linked Web site as a whole, which may be a source of really great information and/or entertainment. Rather, it is simply to highlight specific features (intentional or accidental) of the linked sites which cause problems that could have been avoided by better design. If you find one of your sites is linked here, don't get offended; improve your site so that I'll have to take down the link!
Throughout the articles of this site, I've got links to other sites that relate to the topics being discussed. Here are some general links of Web-developer interest, and links to sites discussing general HTML style or philosophy. The fact that I link to a site doesn't imply that I endorse or agree with it! In fact, I try to include links to all known viewpoints on Web authoring subjects, including viewpoints completely opposite to mine.
Standards and Specs
Hints, Tips, References, and Tutorials
Intentionally Bad Examples
On comp.infosystems.www.authoring.html and Its Inhabitants
Other Commentary and Info
This page was first created 17 Jul 1997, and was last modified 16 Nov 2012.