Common Mistakes Webdeveloper commit
March 18, 2008 at 4:04 am
It’s been more than 3 years now me working on web and I’ve been guilty of making many mistakes myself through the all these years However, I do my best to learn, and avoid making the same mistakes over and over again.
Completely missing, incorrect, or in the wrong place. I have seen HTML 4.0 Transitional used in documents containing XHTML markup as well as in
A common way of styling something with CSS is to wrap it in a
<frameset> documents, DOCTYPE declarations appearing after the opening
<html> tag, and incomplete DOCTYPES.
<span> element with a class attribute and use that to hook up the styling. I’m sure we’ve all seen things like
<span class="heading"> and
(too much) Visual thinking
Treating the web as WYSIWYG – starting off by focusing on how things look instead of thinking about structure first, and presentation later.
Lack of semantics
Non-semantic markup. Basing the choice of which HTML element to use on the way most graphical browsers render it by default, instead of on which meaning the element has.
Character encoding mismatches
Specifying one character encoding in the HTTP header sent by the server, and using another in the document. This may confuse browsers and make them display the document improperly.
Missing or useless.
<img> elements with missing
alt attributes can be found in billions on the web. Not quite as common are useless attribute values like “spacer GIF used to make the layout look good”, “big blue bullet with dropshadow”, and “JPEG image, 123 KB”. Remember, the
alt attribute is required for
Invalid id and class attributes
Multiple uses of the same value for the
id attribute. Invalid characters used in id and class attributes and CSS selectors.For CSS:
In CSS 2.1, identifiers (including element names, classes, and IDs in selectors) can contain only the characters [A-Za-z0-9] and ISO 10646 characters U+00A1 and higher, plus the hyphen (-) and the underscore (_); they cannot start with a digit.
Using scripts, server or client side, in an attempt to detect the visitor’s browser, and send or execute browser-specific code. Very commonly fails for reasons like new browsers, updated browsers, and user agent spoofing (Opera does this by default).
Missing units in CSS
Length values (horizontal or vertical measurements) require units in CSS, except when the value is zero. It’s not like in HTML, where you can type
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens (“-“), underscores (“_”), colons (“:”), and periods (“.”).
width="10". In CSS, it has to be
width:10px; (or whatever unit you’re using).
Scrollbar styling, expressions, filters etc. Proprietary CSS that only works in Internet Explorer. Invalid, too.
Assuming everybody has Flash installed. Not everybody has. And most search engine robots do not (Google has reportedly started experimenting with indexing of Flash files, but they still recommend that you make sure all your text content and navigation is available in HTML files), so if your whole site depends on Flash being available, you’re not going to score high with search engines.
Text as image
Making images of text, and not providing a more accessible alternative. Not only does it take longer for visitors to download images instead of text, you also make it impossible for most visitors to enlarge the text.
Inaccessible, hard-to-use forms. Learn to use the
<legend> elements, and do not use a “Reset” button.
Old skool HTML
Multiple nested tables, spacer GIFs,
<font> elements, presentational markup. So common I don’t really have to mention it here.
Coding for IE/Win first, then adjusting for others, if there is time.
Invalid HTML attributes
Using deprecated or browser specific attributes like
<table> elements, and
<img> elements (in strict DOCTYPEs) just to name a few.
Many URIs contain long query strings with unencoded ampersands (&). This is invalid, and may cause problems. Ampersands must be written as
Did I miss your favourite mistake? Add it to the list
Entry filed under: css.