21 Jul
Posted by ProCOM
on July 21, 2007 – 9:31 pm - 263 views
If you're new here, you may want to subscribe to my RSS feed. So that you can read the latest updates about Web2.0 tools, Making Money Online, Tips in SEO, Ajax and many more. Thanks for visiting ProgramimiCOM!
In general, advertising doesn’t work on the Web, a fact that has been clear to usability researchers since 1997. Users ignore ads because they are contrary to the Web’s basic imperative, which is to let users go where they want and get their information needs instantly gratified.
From the beginning, it was also clear that this indictment of Web advertising had two exceptions:
Both are examples of request marketing: prospects have explicitly asked for the promotions they are being shown, as opposed to having unwanted messages thrown at them. Text-only ads on search engines have become particularly successful in recent years, and non-search sites are now experimenting with this format in hope of replicating that success. However, it’s doubtful that their efforts will work because non-search sites lack the equation’s crucial element: users’ single-minded goal to leave the site as quickly as possible.
Text-only ads might continue to work better than traditional graphics-based ads for some time to come. Web users have long exhibited strong banner blindness and avoid anything that looks like an advertisement. Text-only ads don’t resemble the designs that people have trained themselves to screen out, and the resulting visibility surely contributes to the success of text-only ads. Also, text-only ads benefit from a temporary novelty effect, as does any new advertising format that people have not yet learned to ignore.
Over the long term, however, the novelty effect will obviously fade. Users might also develop box blindness, ignoring little text boxes just as they’ve long ignored banner-shaped areas of the screen. Thus, text-only ads are not guaranteed a bright future outside their native search engine habitat.
Text-only ads might have one durable advantage: because they’re a low-end media format, users might take them more seriously. Being forced to express a message in a few words concentrates the advertiser’s mind, and probably leads to more communicative ads that are better focused on explaining how users will benefit from the product or service. Although there is no inherent reason that you can’t use text for mindless chatter — like “where do you want to go today?” — there is no way users will click on such ads. Ignoring users’ immediate needs is certain death on the Web.
Companies that run rich-media ads that ignore user needs can delude themselves into thinking that they’re “promoting the brand”; in reality, they’re simply being ignored because they don’t connect with people’s needs. The text-only format more clearly exposes content-free messages as useless, however, and thus might save advertisers from the bad instincts they honed on old media.
After ten years of watching Web users, one clear conclusion is that they are utterly selfish and live in the moment. Giving users exactly what they want, right now, is the road to Web success, and having to write small boxes of text encourages advertisers to travel it.
21 Jul
Posted by ProCOM
on July 21, 2007 – 9:22 pm - 242 views
Microcontent needs to be pearls of clarity: you get 40-60 characters to explain your macrocontent. Unless the title or subject make it absolutely clear what the page or email is about, users will never open it. The requirements for online headlines are very different from printed headlines because they are used differently. The two main differences in headline use are:
Because of these differences, the headline text has to stand on its own and make sense when the rest of the content is not available. Sure, users can click on the headline to get the full article, but they are too busy to do so for every single headline they see on the Web. I predict that users will soon be so deluged with email that they will delete messages unseen if the subject line doesn’t make sense to them.
If you create listings of other people’s content, it is almost always best to rewrite their headlines. Very few people currently understand the art of writing online microcontent that works when placed elsewhere on the Web. Thus, to serve your users better, you have to do the work yourself.
Microcontent: Headlines and Subject Lines (Alertbox).OpportunityWeb Design Conference in NorwayInvitation: Keynote speaker at Norwegian Web Design Conference.musicblvd@musicblvd.comYour Music Boulevard OrderMusic Boulevard Order Shipped to You Today (starting with an information-carrying word and being more precise than the original). The from line should have included a human-readable name like Music Boulevard Customer ServiceBig Blue and Wall Street tooReading your PCSound Card Competition Heats UpSound Card Competition Increases in PC Market. Note that the page title will still work if the last part is chopped off in some listings.21 Jul
Posted by ProCOM
on July 21, 2007 – 9:20 pm - 363 views
Well-designed B2C sites can easily explain their products and services in text that is short enough that users will actually read it online. AutoTrader.com, for example, tells us to “Search the largest inventory of cars and trucks on the Internet. More than 1.5 million listings, updated daily.” Given this information, most people can figure out what the site does.
Relative to B2C, most B2B sites sell products or services that are much more complex and have less connection to everyday experience. Summarizing a website’s purpose is thus much harder in B2B than in B2C. That’s why they pay copywriters the big bucks, or so you would think. On closer examination, it seems that most sites pay their copywriters to obscure the site’s purpose rather than state it clearly.
Here are the taglines from four websites: Angara, Calico, CSG Systems, and E.piphany:
Can you match the taglines with the company they describe? Can you tell which company does what? Is there a difference between these companies? Do you care?Regarding the first question: I listed the taglines in the same order as I listed the companies above them. But the real point here, as you no doubt discovered, is that these taglines are basically content-free word count. They do nothing more than clutter up their respective home pages.
I collected the above taglines a few months ago. As I prepared to write this column, I revisited the sites and found that CSG Systems had dropped the tagline “Harness the power of convergence.” The company is now wisely willing to tell us what they actually sell: “customer care and billing solutions.” Much more specific, and thus more likely to harness the attention of stressed-out business executives looking at the homepage in search of products.The new CSG Systems website actually does several things right. The home page is reasonably simple, despite an annoying Flash animation that will likely distract visitors. The main text looks like it’s written based on my guidelines for online content: Short paragraphs, scannable layout, a bulleted list:
|
Unfortunately, when you read the words, you realize that the company is still paying copywriters to avoid communicating with prospective customers. Note how the “solutions” are robust, integrated, efficient, and cost-effective. As opposed to what? A product that was buggy, fragmented, inefficient, and expensive? Given that a website would never advertise such a product, stating the opposite has zero informative value.
Users decide quickly whether to stay or leave a site. To assess whether your homepage communicates effectively to visitors in the crucial first 10 seconds, follow two simple guidelines.
When I’m attempting to build a shortlist of potential vendors, the experience of looking at home pages reminds me of the frustration I usually feel walking a tradeshow floor. I recently attended an intranet conference that had booths from at least 20 different search engine providers. I simply could not tell the difference between these companies. Who did what? Which technologies would make sense for which type of problem? Which products would fit the budget for which projects? The booths were essentially random designs. While they clearly cost huge amounts of money, they failed to communicate anything distinct to a tired tradeshow visitor pacing up and down the aisles.Think about your home page as analogous to a tradeshow booth. Why do you stop at some booths and skip others? And, no: having a live magician is not the answer for your home page. Clearly saying what you do and why users should care is the way to go.
Sometimes technological progress backfires, and the “better” technology turns out to be worse for users. The Web is no stranger to this problem, and has experienced many innovations that would have been best avoided. Examples include frames, changing the color of browser scrollbars, and scrolling text.
Another example of harmful Web technology comes with the increasing use of style sheets, which let web designers specify the exact size of text down to the pixel. Unfortunately, many designers are using this ability, leading to reduced readability of an increasing number of websites.
I’m hereby launching a campaign to get Microsoft to make user preferences override any fixed font size specification in Web designs. It may be okay for the browser to initially render the page with the designer’s text size, but users should be able to easily enlarge text, no matter what the style sheet says. After all, it’s my screen, my computer, and my software, and they should do what I say.
Granted, some web browsers have a geeky feature that lets users specify their own style sheets. Fine for experts, but 99% of users simply want to make text bigger if it’s too small to read. The Mac-only iCab browser gives users this simple control; let’s make Internet Explorer equally friendly to users’ needs.
So, why is so much website text so hard to read in the first place? Two theories:
Because so many sites have made bad decisions regarding font size, users commonly need to change it. Early IE versions supported this need, offering users two standard toolbar buttons: one that made text bigger, and the other that made it smaller. That’s the way things should be. Mr. Gates, please give us back the good design you shipped in IE4 for the Mac.
Unfortunately, recent versions of IE have eliminated IE4’s good design, replacing it with an approach that has two serious usability problems:
For those few experienced users who do prevail and restore the missing button to their customized toolbar, actually changing the text size in IE6 requires several steps:
Compare this awkward, six-step process with the interaction technique required by a design that includes separate buttons for “make text larger” and “make text smaller”:
Of course, I am cheating a little: You would still have the initial step of deciding whether you want the text larger or smaller, thus determining which button you’d click. Still, since the entire change-font-size procedure is triggered by your annoyance at trying to read unpleasantly sized text, you already know that you want bigger (or smaller) text by the time you decide to change the size. (The average user doesn’t have a mental model of a single “change size” command that is parameterized with the desired direction of change; the user’s model includes two actions: “bigger” and “smaller.” How the code is implemented is irrelevant for the user illusion which should be designed to match the users’ mental model.) The two-button approach frees users from the cognitive overhead of calculating how big they want the text to be. Just make it bigger. Users don’t want to specify exactly how big. They can easily keep clicking the “bigger” button if the initial click doesn’t make the text big enough.
Usability is enhanced by single action buttons that move along a uni-dimensional axis in simple steps, as long as each step’s result is immediately clear after each click. That’s also why the Back button is so precious to users, and why it’s used much more frequently than history list navigation.
Reverting to IE4’s design for the Mac would be a great step forward for font size usability. Still, we can do better.Instead of having users manually change the text size every time they come across a user-hostile design, let’s take advantage of the Internet and track font size preferences: Every time your browser loaded a page from a new website, it would first check a database for information about your predicted font size preference:
To expedite response time, your browser might pre-fetch the preference settings for all websites that the current page linked to before you even clicked a link.The central database itself would be a straightforward case of collaborative filtering, since it would be easy to find other users with the same text-size preferences. For any given web page, most users would either leave it alone or request text that’s one or two sizes larger or smaller. Because a total of five options would account for the vast majority of users, font size preferences would be much easier to model than, say, taste in books or films.
Auto-adjusting font sizes based on collaborative filtering is a simple example of the benefits that could accrue from more network-aware browsers. It would also be possible to auto-repair many broken links, auto-remove annoying ads or pop-ups, and make many other improvements to individual users’ experience based on feedback from prior site visitors.
We must stop thinking of browsers as trivial pieces of free software that aim at nothing more than rendering web page pictures on the screen. We need user-supportive environments that facilitate navigation and protect users from the excesses of bad websites.
We can’t wait for Microsoft to ship a good browser, though that has to be the ultimate solution to the font size problem. For now, websites can increase readability by following these guidelines:
The oldest usability guideline for any type of navigational design is to help users understand where they’ve been, where they are, and where they can go (past, present, and future). The three are somewhat interrelated: a good grasp of past navigation helps you understand your current location, since it’s the culmination of your journey. Knowing your past and present locations in turn makes it easier to decide where to go next.
On the Web, links are a key factor in this navigation process. Users can exclude links that proved fruitless in their earlier visits. Conversely, they might revisit links they found helpful in the past.
Most important, knowing which pages they’ve already visited frees users from unintentionally revisiting the same pages over and over again.
Generally, Web browsers are severely deficient in supporting user navigation. However, they do provide one feature that helps users orient themselves: browsers let designers display links in different colors, depending on whether the links lead to new pages or pages that users have seen before. Changing the color of visited links has been part of Web browsing since Mosaic arrived in 1993, so it’s completely standard; almost all users understand it. Currently, 74% of websites use different colors for visited and unvisited links, making this design approach a strong convention that people have come to expect.
Hypertext theory, the Web’s history, and current design conventions all indicate the need to change the color of visited links. Further, empirical observations from user testing have identified several severe usability problems on sites that violate this convention. When sites use the same color for visited and unvisited links, users:
Such usability problems are particularly damaging to users with weak short-term memory, who often have trouble remembering what they’ve clicked without a visual representation. Of course, “weak short-term memory” is an inherent shortcoming of all humans, which is why all users are harmed by unchanging link colors. But this definitely impacts some people more than others, so it’s particularly important to change link colors if you have many older users.Given the extensive theoretical and empirical support for using different link colors, it’s astounding that a quarter of all websites continues to inflict extra usability problems on people by choosing a uniform link color.
Even people who believe in usability sometimes question the need for changing link colors. I think this is because they don’t pick up on the problems caused by unchanging links when they conduct their own user testing. Unfortunately, the symptoms of these problems are among the most difficult to detect when you observe users. User testing is basically easy: we teach it in three days. Most important usability problems are so glaring that anybody can identify them through a simple test. Once you know the basics of how to write good tasks and how to facilitate the session without biasing user behavior, you can clearly see users get into trouble when they encounter poorly designed components of your site.
Say, for example, that a user clicks the wrong button. It’s obvious to any observer that such behavior represents a design error. Listening to users’ comments prior to clicking usually tells you why they misunderstood the design, thus guiding you to make it better in the redesign.
Cases in which users don’t do something are harder to discover. Even so, most usability facilitators can identify many such problems. You might, for example, observe that no one in your test clicked on one of your major features. Users’ thinking-aloud comments will make it clear whether they (a) saw the feature, but didn’t find it relevant; or (b) never considered the feature because it looked too much like an advertisement.
Some usability problems require more detective work and are often overlooked by people relatively new to user testing. This is particularly true for problems that are a composite of multiple individual issues scattered around the site. Identifying these problems is even more difficult when none of the individual issues cause difficulties on their own. A relatively simple example of a multi-location problem is when a homepage link sets certain expectations that cause users to misinterpret the information on the destination page. The link text itself might be clear, and users are unlikely to complain about it. The destination page might also be clear, and users might not complain about it, either, because they think they understand it. The problem is that they understand it wrong because they interpret it in the context of their misguided expectations. This type of usability problem requires test observers to make high-level conclusions based on remembering what happened on the previous page, even though nothing that happened seemed to cause users difficulties.
The damage that unchanging link colors cause is one of the most tricky usability problems to identify in user testing. On any given page, users seem to understand the links just fine. Users almost never complain about link colors, as long as they’re distinct from the rest of the text and reasonably legible. Life is good, or so it seems.
Observe carefully, though, and you’ll notice that users frequently move in circles. They’ll visit the same page multiple times — not because they want to, but because they don’t realize that they’ve already been there. Users will give up when they’ve tried most links in a list, even though there’s one link that they haven’t tried; if the links don’t change colors, users don’t realize that there’s only one unvisited link remaining.
Unchanging link colors also create navigational confusion because users don’t quite understand their different choices or where they are. Of course, this problem could also be a symptom of muddled information architecture or poorly written labels, which is why it requires experience to identify the true root cause of the users’ difficulties.
Even though the downsides of unchanging link colors are easily overlooked in user testing, they’re very real and problematic for users. Many other design strategies for helping users navigate, such as site maps, require a good deal of work. But the browser lets you change link colors for free, so there’s no reason not to take advantage of this simple way to help your users.
Using different colors for visited and unvisited links makes your site easier to navigate and thus increases user satisfaction.
Textual links should be colored and underlined to achieve the best perceived affordance of clickability, though there are a few exceptions to these guidelines. Here are the current usability guidelines for showing textual links:
These guidelines all relate to the textual link appearance. It’s even more important that you carefully choose the link content (the actual words), but that’s another topic. Graphical links are yet another story, but it’s usually best to use text for most links anyway. Following the usability guidelines for link appearance on your site will make it easier for users to immediately determine what they can do on each page and will reduce the probability that they’ll overlook important links.
PDF is great for one thing and one thing only: printing documents. Paper is superior to computer screens in many ways, and users often prefer to print documents that are too long to easily read online.
For online reading, however, PDF is the monster from the Black Lagoon. It puts its clammy hands all over people with a cruel grip that doesn’t let go.
The usability problems that PDF files cause on websites or intranets are legion:
In several recent usability studies, users complained woefully whenever they encountered PDF files. Following are quotes from investors testing the investor relations area on corporate websites:
“It’s a pain that I have to download each PDF. Pain in the ass… I find it to be annoying. It’s slow to load. It’s hard to search within it. I find HTML easier to deal with… This is all PDF instead of a chart. My dream site is to come to a site and get a bar chart for the sales within the last ten years.”
“I hate Adobe Acrobat. If I bring up PDF, I can’t take a section and copy it and move it to Word. There could be stuff like graphics I don’t want. I prefer documents in HTML format so that it’s editable.”
The following user quotes are from journalists testing the PR area on corporate websites:
“They [PDF files] don’t behave like Web pages. It’s not the speed. It is like having a solid thing rather than a fluid thing.”
“What we’ve got is a page of a PDF document which is great when printed out, but on the screen it is hard to read. The print is too small…”
“I am a little frustrated with Acrobat… They made every page a file. So what happens here is when you scroll, it jumps, which is really not helpful.”
This quote is from an employee who was testing an intranet:
“It would have helped if the first page was an index and you could scroll to it. That must be what this side part means. But who am I to say?”
As the last quote shows, even when a PDF file has its own navigation aides, they don’t typically help because they’re nonstandard and based on a paper metaphor rather than hypertext navigation.
We’ve had similar reactions from users in many other studies, including tests of B2B websites where users complained when sites presented product specs or customer success stories in PDF instead of Web pages. Here’s a quote from a customer who shunned those parts of the site that were in PDF:
“It looks like I’m going to have to go to PDF, which I’m dreading.”
Forms, probably the one thing that made the internet popular among the business people. Thanks to this addition to HTML, users are able to interact with a website. Unfortunately, after web forms were first introduced, not a lot has been changed to them. However, with XForms and Web Forms 2.0 on the rise, this is probably going to change. But what are they? What are their new features? And more importantly, which one is going to be superior?
Lets start with the oldest technology: XForms. XForms 1.0 became a recommendation in late 2003 and an update, XForms 1.1, is already in development. One of the biggest advantages is that XForms is an XML namespace and can therefore be used in a lot of ways as a completely device-independant application. To understand what this means, take a look and/or read the introduction on XForms.
Now that I did my duty to give you a short introduction to XForms, lets take a look at its interesting parts: its features. XForms are always seperated into two 2 parts:
The XForm Model is used to describe the form’s data and how to submit it, while the XForm UI is used to make the form available to the user. How the XForms UI should look is not described by the XForms specification in any way, so it’s up to the user agent to render the form in the most usable way. Because of this, it makes XForms very flexible and usable for the user.
First, lets take a look at the XForm Model. This is always defined in the model element. The model can take 3 different child elements:
instance;submittion;bind.The instance element describes all the data which is to be gathered. Every piece of data gets its own element inside the instance.
The submittion element(s) describe(s) how and where to submit the data. Multiple submittion elements can be added to the model which make it possible to submit data to different servers, or using a different HTTP method. For instance, you can have 2 buttons in your form. One to save the data as a file on the server, and one to submit the data to a form which saves it in a database.
The bind element is where the actual fun begins. Using this element you can create a relation between elements. For instance, using a bind element you can specify that a certain element may only be enabled if the value of another element matches a predefined value. So if you have a form that can be used to pay for something, you can ask the user how he/she would like to pay. This could be either by Paypal, cash or credit card. In this case you can specify only to enable the input field where the user can enter the expiration date if the user selects credit card to be the payment method.
But bind also has other features. Take the type attribute for example. This attribute tells the user agent what data is allowed. Combine this with XML Schema, and you have a very powerful way of specifying what kind of data is allowed. This can vary between strings or integers, but also dates or URIs. If these are not enough, you can of course create your own schema with XML Schema for total control.
Another feature of bind is to calculate an outcome. For instance the combined value of two numbers that the user has entered, or an average, etc. The outcome of this calculation can be displayed on the page without even submitting the form data or using scripting.
Below is a small example of how a model could look like:
<model xmlns="http://www.w3.org/2002/xforms"
xsd:xmlns="http://www.w3.org/2001/XMLSchema"
my:xmlns="http://jero.net/lab/xml/ns">
<instance>
<my:to/>
<my:amount/>
<my:details/>
</instance>
<submittion action="pay-me-now.php" method="post" id="pay"/>
<bind nodeset="to" type="xsd:string"/>
<bind nodeset="amount" type="xsd:integer"/>
</model>
Because there’s no such thing as stand-alone XForm documents, the model element in the example above would normally be placed inside the xhtml:head element.
Now that we have taken a quick look at the XForm Model, lets take a look at the UI. As I said earlier in this article, XForms does not, unlike HTML, specify how the form controls should look, but what they do. That’s a major difference here, so make sure you understand that. Once you’ve got that pumped into your brain, let’s take a look at XForm’s form control elements. I will compare them with HTML’s controls to make it as easy a possible for you to understand them (isn’t that nice?). But to avoid confusion, I will refer to XForm elements as xform:element and html:element for HTML elements. If no namespace is present, you can asume that the element is part of the XForms namespace.
input element html:input element, you do not need to specify the kind of form control (input field, password, radio button etc.) because xform:input is only suitable for text. So xform:input will probably render as <html:input type="text">. All other purposes that html:input has are divided into other element which are described below. secret element <html:input type="hidden">, but instead it is the equavalent of <html:input type="password">. textarea element html:textarea. However, the cols and rows attributes are not required in XForms (as a matter of fact, they don’t even exist). For visual user agents, you can specify the dimension using CSS. output element bind element in the XForm Model to calculate something and display it on the page. Together with the ref element we can refer to a bind element to show the outcome of the bind’s calculation. upload element <html:input type="file">. range element xform:input element to let the user type the number in for himself. But with the range element you can make it the user easier to select the correct value in the range specified by the min and max attributes.. Accessibility++! However, this is of course nothing new. Just take a look at your volume control. trigger element <html:button> and <html:input type="button">. submit element <html:input type="submit"> and <html:button type="submit">. select and select1 element xform:select and select1 are pretty darn useful. These two elements are not only the equivalents of html:select, but also for checkboxes and radio buttons. All you need to do is put the available options inside the xform:select or select1 and let the user agent decide how it should look. This can be a list of checkboxes/radio buttons, drop-down list, or whatever the user agent think it’s best for the user.The difference between the two elements is that with select1 the user can only choose one value, while the user can select multiple options from xform:select elements. To give you an example of how an XForm UI may look like, take a look at the possible UI for the model we created earlier:
<group xmlns="http://www.w3.org/2002/xforms"> <label>Transfer Money</label> <input ref="to"> <label>Receiver</label> </input> <input ref="amount"> <label>Amount</label> </input> <textarea ref="details"> <label>Additional details</label> </textarea> <submit submission="pay"> <label>Transfer!</label> </submit> </group>
As you see, the group element is used to group all the payment controls. In HTML we’d normally use fieldset for this. The xform:label inside the group can be compared with html:legend as they both act as a title for the group/fieldset. The xform:labels inside the xform:input elements are used as text to describe the xform:input element. This is comparable to the function of html:label. The xform:label inside the submit element will probably be rendered as text on a button, just how <html:button>Submit!</html:button> would be rendered.
Now that I gave you some info about XForms (yes, only some as there is a lot more), lets take a look at XForms’s younger stepbrother: Web Forms 2.0 (WF2). WF2 is developed by the WHATWG which is the same group who’s developing the Web Applications 1.0 specification, aimed at extending current markup languages (HTML 4.01 and XHTML 1.0). The same applies to WF2. Unlike XForms, WF2 does not want to replace current web forms. Intead, WF2 aims at extending current web forms which has one very important advantage: backwards compatibility.
When you’d read the Web Forms 2.0 specification, you’d be delighted with the fact that because of WF2’s backwards compatibility it is very easy to pick up, especially compared to XForms which is basically a pain the ass to learn. Just take a look at the INPUT element. Yes! Exactly the same as HTML 4.01’s INPUT element, although with new values for the type attribute:
datetime, datetime-local, date, month, week and time 1996-01-01T00:00Z). When a WF2 confirming user agent would see an INPUT with either of these values for the type attribute, it could make it the user easy and display the input field as
. This way the user agent can make sure that the submitted date will always confirm to ISO 8601 and the user will have less problems with entering the date (some sites require a specific scheme like MM-DD-YYYY which would cause trouble for European users because they’re used to DD-MM-YYYY). number INPUT will only allow numbers. No explanation needed I hope… range xform:range, the html:input with the value range for type will allow the user to select a value in the range of the numbers specified by the min and max attributes. email url If you still don’t like the new values for type, you can write your own regular expression that should be used to validate the user input. This regex can be included in the pattern attribute which will be used to validate the user’s input upon submission.
Of course, the additions to WF2 do not limit themselves to input types. Take the required attribute for example. If there is a form control forgotten that has the required attribute, the user agent should not submit the data. The same applies to the type and pattern attributes if a value is submitted that does not meet its field type.
Another new element we see in WF2 is the DATALIST element. This element allows the author to specify a list of default values for, for instance, a text field which will have a somewhat similar effect as your browser’s address bar. Once you click on the arrow at the right of it, a list of IRIs which you previously visited appear. You can think of the DATALIST element to contain such a list of options which can be selected by the user in the INPUT is he wishes to do so.
And I could go on and on and on about all the new features in both specifications. I didn’t even talk about Web Forms 2.0’s repetition model, XForms’s Repeat Module and the new events! However, doing all this research on these two forms did made me understand the two a lot more. Not only did I learn about the new stuff they bring, but also that it’s not 100% fair to compare the two with each other. First of all, the Web Forms 2.0 is still a Working Draft while XForms 1.0 is already a W3C Recommendation since October 2003. The WF2 specification also says that Web Forms 2.0 aims to simplify the task of transforming XForms 1.0 systems into documents that can be rendered on HTML Web browsers that do not support XForms.
Therefore we can’t really talk about two competing standards.
However, I think it’s clear that both are at least much, much better than the forms we have now. XForms of course being the more powerful of the two. Its power is incredible thanks to the powerful XML functions that allow the use of multiple namespaces in the same document. However, due to the lack of native support for XForms (only Firefox 1.5+) and XML in general (Internet Explorer), it’s going to take a long time until we can use this awesome namespace.
And that’s the sole reason why WF2 was born: because we have to wait for such a damn long time. Thanks to WF2’s backwards compatibility, we can use most of XForms’ features without discriminating legacy browsers like Internet Explorer because WF2 support is not needed to complete the form. The only advantage that WF2 adds is the fact that forms become a lot more usable for the user when the user’s browser supports WF2. Hopefully modern browsers like Firefox, Opera and Safari can use WF2 to win more users.
However, in the long run, I don’t see WF2 surviving. I still think XForms is a lot better, and once it gets proper support, I’m sure we can say goodbye to WF2. Now don’t get me wrong on this. I still think that WF2 is a great extension to current web forms until the browsers ship with native XForms support and I can’t wait for Firefox to support it.
As we all know, the table element shouldn’t be used for styling your document. The div element should be used instead, together with the id and class attribute to style it with CSS, just like the HTML 4.01 and XHTML 1.0 specs tells us to do. But aren’t we polluting our markup with these div elements, because we’re only using them for presentational purposes?
First, let’s take a look at an example. Here’s the HTML code of the top of previous layout:
<div id="logo">
<h1>Programimi.com</h1>
<hr>
</div>
As you see, I wrapped the site name and a hr element inside a div element. But the div element has absolutely no purpose in my document instead of having the id attribute and using CSS to style it. So by using divs, you don’t separate presentation from structure at all, nor does it have any semantic value, just like the font and center elements.
One might argue that the div element can be used to divide the document into sections. If this were true, the div would have a real purpose. Unfortunately, it isn’t. Just take a look at what the HTML 4.01 specification says about the element:
The
divandspanelements, in conjunction with theidandclassattributes, offer a generic mechanism for adding structure to documents. These elements define content to be inline (span) or block-level (div) but impose no other presentational idioms on the content. Thus, authors may use these elements in conjunction with style sheets, thelangattribute,etc., to tailor HTML to their own needs and tastes.
Ok, the spec does talk about adding structure, but that’s actually quite vague, don’t you think? What kind of structure do they mean!? Because the W3C didn’t give any real information on how the div element can give structure to a document that can also be understood by user agents, “adding structure” is actually not possible because no-one understands how it is structurized. The only possible way to do so is by using the id attrubute, but the value of this attribute can only be understood by humans, not user agents. Therefore, it’s still impossible to give structure to a document by using the div element so the only reason to use the element is to group certain elements together in order to style them (or give it a lang like the quoted piece from the HTML 4.01 spec says, but who uses the attribute anyway!?).
So should we just ditch the div element? I guess not. You should, but it would be impossible to make a decent layout at the moment. Which I, as a web designer, enjoy looking at. Another reason would be because we don’t have any alternatives. Well, not yet. Just take a look at the header element, introduced by HTML, or XHTML 2’s role attribute. By using either one of the methods instead of the div element from my previous example at the beginning of this article, that section will actually have a meaning. In other words, the document will become semantically richer.