Best practices: keywords in alt attributes

This is certainly a subject that I’ve covered before — in fact, it’s something I would hardly choose to cover yet again if it didn’t continue cropping up as an important issue. The use of text in alt attributes is an extremely sensitive subject.

Today, the good folks at SEOmoz published an extensive article documenting their statistical findings on web site ranking factors, as gathered from the data in their LinkScape analysis tool. It’s a good article, and demonstrates some interesting results they’ve garnered from the data available in the extensive LinkScape database.

One of their major takeaways in the article was a little disturbing to me.

Alt attributes of images are probably pretty important places to use your keywords[.]” Explaining (Some of) Google’s Algorithm with Pretty Charts & Math Stuff, October 22nd, 2009

I’m not in anyway disputing their results; their data indicates that placing keywords in alt attributes is of benefit to search engine rankings. Whether that’s true or not is irrelevant to me; I simply want to discuss how this information should be best used.

SEOmoz, of course, is a company dedicated to the study and practice of search engine optimization and marketing. Their goal is to learn what they need to know in order to best put into practice the promotion of web sites. That’s great. My goal, however, is to make sure that users with disabilities are able to use and access web sites successfully without having to jump through unnecessary or unhelpful hoops along their way.

This is a particular case where the SEO method must be used cautiously and selectively if at all. What I want to convey in this article is the fact that while using keywords in alt attributes may help your web site rank, it can also result in a significantly less accessible web site, if applied poorly.

What’s the problem with alt attributes?

While sighted users will never even be aware of an alt attribute value in normal web browsing, screen reader users depend on them. Excess verbiage can render an image-based menu unusable, as I observed in a recent site review at Practical eCommerce. The same unnecessary use of keyword terminology in contextual images can easily confuse or distract a user; and the use of keywords with spacer or ornamental images can cause a web site to be completely unnavigable.

It’s all a question of information overload: practically speaking, if a web site uses images to convey information, a screen reader user can’t disable them without rendering the web site unusable. If the site also fills other images with extra text, the same user may be overwhelmed by an unnecessary volume of keyword phrases.

The SEOmoz report does continue to remark that “Keyword stuffing may be holding you back,” and the overuse of keywords in alt attributes can certainly qualify as keyword stuffing.

You shouldn’t take away from this article that using a keyword in an image alt attribute is totally unacceptable. That’s really not the case: just be selective. I wouldn’t condemn you for using the text “About ProductName” instead of “About” for a navigational image, or using a sensible alt attribute for a contextual image, such as “Woman using our ProductName.” Just remember that keyword stuffing is keyword stuffing, wherever you put the words.

And never place any value in the alt attribute for a purely decorational or spacing image. Please. Just an empty attribute.

Alternative Text for Significant Images

In the comments from my most recent article, “Supporting Standards that Support Accessibility,” a number of interesting thoughts were raised concerning the requirement (or lack thereof) of the alt attribute in HTML 5.

It’s a difficult issue.

I’ve seen numerous articles around the web which discuss the fact that HTML 5 does not require the alt attribute. To some degree, this is true: HTML 5 provides exclusions to the requirement. In situations where an image is significant but no alternative text can be provided, HTML 5 recommends that the alt attribute be left off as an indicator that the image is significant (not a purely decorational image).

It’s actually quite a bit more complicated than that — the specification describes detailed guidelines for when the alt attribute should be left off, when it should be given a value, and when it should be provided without a value.

My complaint, and the complaint of many others involved in the web standards world is against the concept of providing any reason that the alt attribute may be left off. Ian Hickson states:

Empty alt text means the image is unimportant (decorative) and should be ignored. Missing alt text means that the image is important, critical even, but that there is no fallback text provided. The user agent is expected to treat the two cases differently.

At least, that’s what the HTML5 spec says at the moment.

I believe that it is important to provide a way to distinguish the two cases above; putting both of them into the empty alt=â€?” category would be, IMHO, bad for the accessibility of the aforementioned pages.

He’s right, of course — it is quite important to distinguish between insignificant images such as decorational graphics and between significant but undescribed or undescribable images. The challenge, then, is to come up with a solution to the problem which allows the alt attribute to remain.

So…what are some possible alternatives?

The first thing that comes to mind is to add a signifier attribute. Something which indicates whether an image is significant or non-significant. This would require some revision to HTML generating tools, but certainly no greater a change than that expected for new elements. It would be best to assume a default value when the element is not provided which assumes the image is significant, for backwards compatibility.

A second possibility would be to introduce a key term available to the alt attribute which would indicate significance. This strikes me as a bad idea, since it would have relatively poor backwards compatibility, and would require selecting a term which would become unavailable as normal alt text. Nah, that’s not really going to work.

Third…I’m struggling to come up with another idea…

I’m very open to any thoughts on the subject. Problems with these ideas are welcome, as are suggestions of any off-the-wall idea you may have!

Page 1 of 11

Return to Top