Document Status: Severely out of date.
This article is now several years band several key releases out of date.
The Thesis theme is no longer accessible and is not a suitable theme for accessibility.
My new WordPress site supersedes this one and can be found at www.timnoonan.com.au
- Document Status: Severely out of date.
- Why WordPress?
- Initial Site Set-up and Technical Support Approaches
- Choosing a Theme
- Efficient Writing, Formatting and Updating of Posts
- MarkDown Extra
- Content Proofreading and Editing
- Leaving Notes or Instructions for Editors
- My Favourite Accessible Plugins
- Easy Retweet
- Hackadelic SEO Table Of Contents
- Markdown Extra
- Secure and Accessible PHP Contact Form
- Stray Quotes Z
- Twitter Tools
- WordPress Database Backup
- WPaudio – no longer working in WP 3.4.1
- Do You Have Any Accessibility Tips or Useful Plugins to Add?
- Comments (10)
This particular post isn’t about voice or Vocal Branding, it is an informational article for people interested in making their WordPress installations more accessible to develop and update, as well as producing a site that is as accessible and intuitive as possible for visitors. By accessible I mean that people with a range of disabilities are able to access it efficiently and easily.
In particular, my baseline for accessibility and ease of access for this article is based on my experiences as a blind WordPress administrator and my use of the screen reader Jaws For Windows, though I expect Window Eyes users will get similar great results with the info.
There are also some good accessibility references in the WordPress and Accessibility page, though it isn’t very detailed about WordPress specifically.
In addition to listing some very useful and accessible Plugins, I also cover some strategies for entering and editing text for posts and pages.
SadlyWordpress has declined in access for its bak end and some great plugins no longer work with newer WordPress versions, such as the great wpaccess audio player.
Ideally, please leave a comment on this post, or contact me with feedback, questions, or if you have found other plugins and strategies for accessible WordPress site management.
WordPress is the number 1 blogging platform in the world. That has led to it becoming one of the fastest growing business website platforms.
There are two WordPress configurations available:
a blog hosted on the WordPress.com site/service; and
hosting the WordPress software on a server, with your domain.
My approach was to have my own WordPress installation on a server, and some of the info in this article definitely will not be applicable for wordpress.com or WordPress multi-user installations prior to WordPress 3.x.
At the time of writing, prior to the release of WordPress 3.0, there are two distinct and quite different families of WordPress software – single user and multi-user. Prior to WordPress 3.0, the Multi-user option is much more restrictive in terms of the plugins which can be installed.
Its more set-up work and more involved to set up your own WordPress installation, but much more flexible in the long-run, and probably particularly so, for greater control of accessibility for your site.
Initial Site Set-up and Technical Support Approaches
Its quite easy to get started and up-and-running with WordPress; that is one of its greatest features as a Content Management System/blogging platform.
My website and blog is for my Vocal Branding Company, and its important to me that it is always running reliably and doesn’t take too much of my time in admin tasks. For that reason (and because I can’t visually check the look of the site) I have a support contract with a WordPress specialist to do those things that are less efficient for me to do, because of accessibility or efficiency. He also installed and did basic configuration of WordPress for me.
That said, I like to be able to find and configure plugins, manage the layout and features of my sidebar, and generally have hands-on operation of the site. WordPress – while it does have a very busy back end dashboard – is quite accessible for all these tasks using a screen-reader.
Choosing a Theme
After installing WordPress, you need to select a theme. WordPress comes with a couple of pre-installed themes, for which there is ok accessibility. For example, the standard theme in recent WordPress releases has ARIA Landmarks for some site features/regions.
I am using the Thesis theme from DIYthemes, version 1.7 at time of writing. This is a paid theme, and costs about 90 USD.
I chose it because it generates very well structured code, is highly configurable from menus, and requires minimal editing of PHP configuration files.
It makes extensive use of headings to expose structure, and visually is one of the most clean looking and readable themes out there.
It allows many features to be enabled or disabled through menus, such as track backs, archives etc, to produce a very clear uncomplicated site. Less options translates to greater comprehension and understanding for people unfamiliar with blogging.
The result is intuitive structure and navigation, giving an un-busy feel.
Search Engine Optimisation features are in-built to Thesis (note for example on this page that the page title is more search-engine focused, and is different to the official blog post title). Thesis also bgenerates very clean and efficient page code.
There are a couple of other themes that offer some of these benefits and quality, but Thesis is probably in the top three, and is setting a lot of the trends for modern and clean WordPress presentation
Thesis, out of the box, doesn’t have ARIA region support, but this may be quite easy to add using the Thesis Open Hook facility, if desired. I am exploring adding ARIA regions to my site, but the ‘Jump to Sidebar’ link and the heading structure I have adopted largely addresses common navigation needs. A great Blog post by Steve Faulkner Using WAI ARIA Landmark Roles explains the benefits of ARIA landmarks and how to code them.
But whichever theme you select – it must be current and include Widget plugin functionality, or you will need to spend too much time configuring and adjusting PHP and CSS code!
Efficient Writing, Formatting and Updating of Posts
I have found that the visual editor in WordPress causes JAWS to have major focus issues. Therefore you should set the editor to the HTML mode.
In this mode, all the HTML code is exposed and editable.
But it is frustrating, error-prone and very inefficient to have to hand-code all the HTML of every post, in order for it to look great, easily include lots of hyper-links and provide rich navigation etc. Fortunately, there is another (very efficient and accessible) way, its called MarkDown.
Markdown is a convention developed for writing efficient ASCII documents, that translate into fully-fledged HTML.
Markdown Syntax allows you to write using an easy-to-read, easy-to-write plain text format. Based on the original Perl version by John Gruber. Markdown is two things: a plain text markup syntax, and a software tool that converts the plain text markup to HTML for publishing on the web. The Markdown syntax allows you to write text naturally and format it without using HTML tags. More importantly: in Markdown format, your text stays enjoyable to read for a human being, and this is true enough that it makes a Markdown document publishable as-is, as plain text. If you are using text-formatted email, you already know some part of the syntax.
This means you can write your blog article in word or in a text editor, and paste the text directly into the edit box in WordPress, or just edit the post directly in WordPress.
I elected to use the MarkDown Extra plugin instead of the MarkDown plugin because it is an extension of the MarkDown format, with some useful features not available in the standard plugin. Both are by the same author.
Sometimes, MarkDown and WordPress don’t play perfectly together, and you will encounter problems if people use the visual editor to do major changes to your MarkDown posts, but the advantages totally out-weigh the occasional conflicts. contact me if you start using MarkDown and I can talk you through its constraints and suggest some work-arounds I’ve found.
Here is a basic sample of some Markdown text:
###I'm a Level 3 Heading, because I start with 3 number sign symbols I'm a normal paragraph. * I'm the first item in a bulleted list * and I'm the second list item. I'm normal text again. 1. I am the first in a numbered list; 2. I'm the second item; and 3. I'm the third. ####I'm a level four heading, because I start with four Number Sign symbols [this is the text to be displayed for the following hyperlink](http://www.AndTheLinkURL.com)
Content Proofreading and Editing
WordPress is also great because you can enlist editors or administrators who can review and edit your posts. Because my site is commercial, I engage someone to proofread and correct my posts and pages. This person doesn’t need to be highly technical, they only need to be generally familiar with technology and text editing. They do need to be alerted about what not to edit, i.e. links and tampering with the MarkDown formatting.
Because WordPress keeps all previous versions of each post or page, you can easily revert to earlier versions if necessary.
Leaving Notes or Instructions for Editors
Sometimes you want to leave a note for other editors and site administrators to read, but which doesn’t show up for regular visitors to your site. I love this capability.
The instructions on how to do this are here and involve pasting a code snippet into your theme’s functions.php file or equivalent.
My Favourite Accessible Plugins
For each plugin I supply a hyperlink to the Plugin page, a paragraph by the author describing the plugin, and then some comments of my own regarding its use and accessibility.
AStickyPostOrderER lets you customize the order in which posts are displayed per category, per tag, or over-all, in WordPress 2.3+ blog. Useful when using WordPress as a Content Management System. Now with the ability to override itself.
You will notice when you go to vocalbranding.com.au that Welcome to Vocal Branding Australia always appears as the first post. I used this plugin to achieve this result, because the default behaviour on a blog is for the latest post to come first. When I originally set up the site, I wanted to have all the articles turn up in a specific order, to make the flow of reading more intuitive. This plugin allows for any situations of that kind.
Adds a Retweet button to your WordPress posts.
Here is an example of a retweet link in an article. I also have this link automatically appear at the end of each blog article.Tweet
Beyond a doubt, TweetMeme Retweet is the market leader in this category, but it is very verbose with JAWS, due to its use of a separate frame containing the button and the number of times the post has been tweeted. Easy Retweet is concise, supports shortcodes for placing anywhere in a post, and has similar functionality.
Hackadelic SEO Table Of Contents
Easy to use, freely positionable, fancy AJAX-style table of contents for WordPress posts and pages.
You may have noticed the “In This Article” list of same-page links at the top of this post. I used this plugin to automatically create this. The plugin isn’t perfect, and you can’t remove the link to the author’s site, but its very effective and saves lots of hand-coding. I think if I include some CSS supplied by the author, that the links will be indented to reflect their heading level, but I haven’t had time to do this. Also, I also don’t know if that indenting would be exposed to a screenreader or not, since it uses CSS padding values for indenting layout.
Note the table of contents doesn’t appear for posts on the front page of the blog, it only shows up on the page for a specific post. You choose which posts you want to have a table of contents by using the toc shortcode.
allows you to write using an easy-to-read, easy-to-write plain text format. Based on the original Perl version by John Gruber.
I’ve described this in detail in an earlier section. I Love it!
Quickly and easily check your content against SEO best practices utilizing the Scribe Content Optimizer. You will need a Scribe API Key in order to use the application. If you do not have an API Key, go to http://scribeseo.com. Requires one of the following installed and activated – Thesis, Hybrid, Headway, Genesis, FV All In One SEOor All In One SEO Pack.
I’ve installed this, and it is quite accessible. It is a paid service, and I think the pricing is a little rich, but it really provides great feedback on how to optimise your posts for better Search Engine Optimisation. I still have quite a way to go here with great SEO
When you request an analysis of the page or post, the results appear in a pop-up frame right at the bottom of the page.
Secure and Accessible PHP Contact Form
This powerful yet easy-to-install contact form features exceptional accessibility and usability while still providing extensive anti-spam and anti-exploit security features. A marriage of communication and peace-of-mind.
I have installed this, and tested it, but its not active on my site right now. For technical reasons, this plugin can have difficulties sending the form via email, depending on your hosts email rules and configuration. If you have problems with forms being sent, try an email address like Gmail, that is in a different domain to your blog, that way you may sidestep these hosting configuration problems.
Stray Quotes Z
This is an adjusted version of Stray Random Quotes plugin (v1.9.9) originally written by ico for displaying and rotating quotes and expressions anywhere on your blog.
The Plugin is very flexible, and you can segment your quotes into different categories, and select quotes from one or more categories.
Each quote has a unique ID number, or can be randomly presented.
I use this plugin for a few different things around my site:
to randomly present (or to include specific) testimonials on my Vocal Branding Services and my conference speaking;
“What this guy doesn't know about the voice and its expression isn't worth knowing.” - Jason J Tweet
to randomly present voice-related quotes I have written or collected;
“What ever you say today always influences your life in some future way” - Tim Noonan
to randomly insert vocal branding or company messages in posts.
“The Vocal Branding philosophy is a paradigm shift in the ways that voice is viewed and employed as part of marketing, branding and advertising activities. At Vocal Branding Australia we apply a fresh and contemporary reframing of the ways voice has traditionally been considered in these industries – we innovate with voice – traditional approaches tend to imitate how it has always been done before.”
If you are using WordPress 2.9.1 or higher, you will likely need this Z version, because the official version doesn’t handle ‘ characters ‘correctly in WordPress 2.9.1 or 2.9.2.
Automatically links Twitter.com @usernames and #hashtags in WordPress blog posts.
So, if you want to follow me on twitter, my personal twittername is @TimNoonan and I didn’t need to type in the www.twitter.com/ for it to appear as a link.
A complete integration between your WordPress blog and Twitter. Bring your tweets into your blog and pass your blog posts to Twitter. Show your tweets in your sidebar, and post tweets from your WordPress admin.
You can see this in action in my site sidebar where my last 8 or so voice-oriented tweets appear. And as the site administrator, I can tweet directly from the sidebar.
WordPress Database Backup
On-demand backup of your WordPress database, sent to you by email.
This isn’t accessibility-related, but its very good sense to get a daily or weekly backup of your WordPress databases sent to you via email, in case something unfortunate happens.
Adds an AJAX poll system to your WordPress blog. You can easily include a poll into your WordPress’s blog post/page. WP-Polls is extremely customizable via templates and css styles and there are tons of options for you to choose to ensure that WP-Polls runs the way you wanted. It now supports multiple selection of answers.
It apparently looks good, seems very accessible with current JAWS, and if you want to survey users about topics, this is a great tool. It doesn’t allow full surveys that include text answers, its just multiple choice style. But, you can set a poll up allowing more than one answer to be ticked by the user for the poll. Once the user has voted, they see the current voting results.
Here is a simple poll about this blog post. You are able to tick one or two of the four choices given. Give it a try.
There are lots of other plugins on this author’s site, which I haven’t tried.
WPaudio – no longer working in WP 3.4.1
This great plugin no longer works in WordPress 3.4.1 but in case that changes I’ll leave the info below.
Instead I’m now using MediaElement.js which is an audio and video player that works quite well. You can find an example of this new player below.
Play mp3s and podcasts in your posts by converting links and tags into a simple, customizable audio player.
I’ve left the best for last – well the plugins are actually listed in the order they present in my WordPress dashboard, but WPAudio is the plugin I am most pleased to have found.
There are several awful and painfully inaccessible flash-centric audio player plugins for WordPress, but this one is just fantastic! It took me hours and hours to test and try those, till I finally found this one.
The audio is accessed by clicking on a normal link, and when you click it, the audio starts playing. if you press enter again, it stops playing and is paused.
When you click the link it also brings up an additional link to download the MP3 file as well or instead. This means iPhone users and people using devices like mobile phones can still download and hear your audio. Downloading can be disabled if desired.
As an example of the MediaElement.js player, Here is an audio interview with me and Robin Dickinson @Robin_Dickinson about the human voice.
Hear this conversation with me about the voice
Do You Have Any Accessibility Tips or Useful Plugins to Add?
If you have experiences, suggestions or other themes or plugins to recommend, please leave a comment below this post.
You can also contact me with questions.
Happy WordPress Blogging
@TimNoonan on Twitter