The most annoying issue with Joomla!, despite the admirable efforts of many people involved with the project, is its tendancy to output crappy HTML. Even still, at least one of the default themes uses tables for layout, and last time I checked the RSS feeds that it spat out wouldn’t validate.
But the biggest problem is not with the core. A little bit of hacking can get around that. The bigger problem is the poorly coded extensions (plugins, components, modules). Running a website off an open-source CMS means you almost invariably are going to need to rely on 3rd party extensions, and there’s nothing inherently wrong with that.
What’s wrong is the shoddy state of Joomla’s extension landscape. Credit to the extension authors is of course due more than blame, as they’re working (generally) for free, out of goodwill. But having to re-work over the HTML generated by pretty much each and every extension–whether it’s removing tables used for layout, getting rid of deprecated elements and attributes, or just fixing plain old errors–gets tedious quickly. People should know better than to just throw
<style> tags into the middle of a document. I shouldn’t be seeing
<td align="center"> anywere.
Joomla! is, in many ways, a great CMS. One of its shortcomings, however, is that it has been slow to adopt web standards, which frequently manifests itself in annoying validation issues with generated XHTML and XML feeds. These issues are usually fairly easily overcome, but it would be nice if you didn’t have to worry about them in the first place.
The default WYSIWYG editor, for instance, seems to purposely prevent you from entering your ampersands (
& which is required for XHTML validation. The way around this is simply to use a different editor; namely, JCE, or the Joomla! Content Editor. JCE will, among other nice features, automatically appropriately encode your typed ampersands, making it easier to ensure your code validates.
One annoying “feature” I’ve encountered with JCE so far, though, is the inability to insert empty
alt attributes. Often, particularly in the case of an icon that is more than adequately explained by surrounding text, adding
alt text would actually just be at best redundant and at worst confusing to people using screenreaders. However, to validate, you have to include an empty
alt attribute (
alt=""). JCE doesn’t seem to like this, and will strip your empy
alt attribute. I’m sure there is a relatively simple hack to circumvent this.