<?xml version="1.0" encoding="utf-8"?>

			<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

			<channel>
			<title>Blog of Shaun McCran - Architecting robust, elegant technical and business solutions - Accessibility</title>
			<link>http://www.mccran.co.uk/index.cfm</link>
			<description>I write about Architecture and Design, Architectural patterns, Architectural Principles and Architectural policies. This includes TOGAF, Zachman, Business Architecture, SOA and Process and tools such as the IBM Rational software and Adobe products. I also write about my previous life as a mobile and web developer.</description>
			<language>en-gb</language>
			<pubDate>Tue, 09 Jun 2026 06:51:17 -0000</pubDate>
			<lastBuildDate>Tue, 15 Feb 2011 15:55:00 -0000</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>shaun@mccran.co.uk</managingEditor>
			<webMaster>shaun@mccran.co.uk</webMaster>
			<itunes:subtitle></itunes:subtitle>
			<itunes:summary></itunes:summary>
			<itunes:category text="Technology" />
			<itunes:category text="Technology">
				<itunes:category text="Podcasting" />
			</itunes:category>
			<itunes:category text="Technology">
				<itunes:category text="Tech News" />
			</itunes:category>
			<itunes:keywords></itunes:keywords>
			<itunes:author></itunes:author>
			<itunes:owner>
				<itunes:email>shaun@mccran.co.uk</itunes:email>
				<itunes:name></itunes:name>
			</itunes:owner>
			
			<itunes:explicit>no</itunes:explicit>
			
			
			
			
			
			<item>
				<title>Web Accessibility 101 - Validation and Testing</title>
				<link>http://www.mccran.co.uk/index.cfm/2011/2/15/Web-Accessibility-101--Validation-and-Testing</link>
				<description>
				
				This article will discuss different ways to Validate and Test your projects for Accessible criteria, including using standard web browsers and screen readers. I&apos;ll also list some of the more popular testing tools I&apos;ve come across.

This is the third in a series of planned articles dealing with Web Accessibility. In this series I will cover what is Accessibility, how to build Accessibility into web projects, how to test and validate for Accessible users and some other factors to keep in mind when dealing with Accessibly minded projects.
				 [More]
				</description>
				
				
				<category>Recommended Apps</category>
				
				<category>Accessibility</category>
				
				<category>Web technologies</category>
				
				<pubDate>Tue, 15 Feb 2011 15:55:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2011/2/15/Web-Accessibility-101--Validation-and-Testing</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Web Accessibility 101 - Compliance and Standards</title>
				<link>http://www.mccran.co.uk/index.cfm/2011/2/13/Web-Accessibility-101--Compliance-and-Standards</link>
				<description>
				
				This article will discuss UK based Accessibility Compliance and the development standards around ensuring that your project will pass Accessibility testing and validation.

This is the second in a series of planned articles dealing with Web Accessibility. In this series I will cover what is Accessibility, how to build Accessibility into web projects, how to test and validate for Accessible users and a few other factors to keep in mind when dealing with Accessibly minded projects.
				 [More]
				</description>
				
				
				<category>Software Architecture</category>
				
				<category>Accessibility</category>
				
				<category>Web technologies</category>
				
				<pubDate>Sun, 13 Feb 2011 21:33:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2011/2/13/Web-Accessibility-101--Compliance-and-Standards</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Web Accessibility 101 - What is it, and why do it?</title>
				<link>http://www.mccran.co.uk/index.cfm/2011/2/9/Web-Accessibility-101--What-is-it-and-why-do-it</link>
				<description>
				
				In my developer life I&apos;ve encountered many different clients who have a multitude of requirements for their web projects. One that is occuring more frequently is &apos;Accessibility&apos;. Over the past year or so I&apos;ve had to really delve into what this means for a website, and how it affects IT projects.
&lt;p&gt;
This is the first of a series of articles relating to Web Accessibility, breaking down how I understand each aspect of it, including things like best practice coding, testing, what your mark-up really tells impaired users and the general theory behind creating Accessible content. I&apos;ll also try and point out any tips I&apos;ve uncovered to try and smooth out the, sometimes rock, path to validating a site as Accessibly compliant.
&lt;p&gt;
				 [More]
				</description>
				
				
				<category>Best practices</category>
				
				<category>Accessibility</category>
				
				<pubDate>Wed, 09 Feb 2011 17:38:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2011/2/9/Web-Accessibility-101--What-is-it-and-why-do-it</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Fck editor inserting xhtml and browser specific code</title>
				<link>http://www.mccran.co.uk/index.cfm/2010/6/3/Fck-editor-inserting-xhtml-and-browser-specific-code</link>
				<description>
				
				I&apos;ve been using the fck editor to handle my rich text areas in a content management application. I have to say I like the way it works, and it integrates easily with a Coldfusion platform. It does however have a few issues. This article deals with fck editor using xhtml code, and the editor using a few browser specific html rewrites.

Note: I can&apos;t have xhtml code in my site, as the definition type is not xhtml, and it fails an accessibility check if any is present.
				 [More]
				</description>
				
				
				<category>Coldfusion</category>
				
				<category>Accessibility</category>
				
				<category>HTML</category>
				
				<pubDate>Thu, 03 Jun 2010 10:47:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2010/6/3/Fck-editor-inserting-xhtml-and-browser-specific-code</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>JQuery multiple show and hide div’s based on click event</title>
				<link>http://www.mccran.co.uk/index.cfm/2010/5/4/JQuery-multiple-show-and-hide-divs-based-on-click-event</link>
				<description>
				
				This article shows how to use JQuery to show and hide many div&apos;s at the same time, revealing the content that the user requests. It also degrades gracefully if you turn off Javascript.

Have you ever tried to display a Questions and Answers type page, where the Question is a clickable link that shows the corresponding Answer (FAQ&apos;s)? It is quite tricky to make this interesting, and Accessible to impaired users.

A full demo of multiple show and hide divs is here: &lt;a href=http://www.mccran.co.uk/examples/multishowhide/index.cfm target=_blank&gt;link&lt;/a&gt;
				 [More]
				</description>
				
				
				<category>JQuery</category>
				
				<category>Accessibility</category>
				
				<category>Javascript</category>
				
				<category>RIA</category>
				
				<pubDate>Tue, 04 May 2010 15:59:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2010/5/4/JQuery-multiple-show-and-hide-divs-based-on-click-event</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>How to stop FCK Editor wrapping your content with &apos;P&apos; tags</title>
				<link>http://www.mccran.co.uk/index.cfm/2010/5/4/How-to-stop-FCK-Editor-wrapping-your-content-with-P-tags</link>
				<description>
				
				Whilst testing a website for WCAG 2 Accessibility compliance I noticed that all my dynamic content from a database was wrapped in the HTML &apos;P&apos; element.

The functionality that put the content into the database was a rich text area using the inbuilt FCK Editor. This article deals with how to stop FCK editor wrapping your content in undesirable tags.
				 [More]
				</description>
				
				
				<category>Coldfusion</category>
				
				<category>Accessibility</category>
				
				<category>RIA</category>
				
				<pubDate>Tue, 04 May 2010 13:19:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2010/5/4/How-to-stop-FCK-Editor-wrapping-your-content-with-P-tags</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>NoScript alternatives for Javascript content using CSS visibilty</title>
				<link>http://www.mccran.co.uk/index.cfm/2010/2/4/NoScript-alternatives-for-Javascript-content-using-CSS-visibilty</link>
				<description>
				
				I recently stumbled upon an interesting dilemma whilst using an image map that was dynamically generated from a Coldfusion Query. If you turn JavaScript off, then the image maps primary graphic still stays visible (and occupies the same space on a page), but none of the map links function anymore.
 
The problem was to replace the map content with a list of hyperlinks that provide the same functionality. Initially I set the maps div CSS to be hidden. In this way the map is not shown by default. 

&lt;code&gt;
// css
.interactiveMap {visibility: hidden;}
&lt;/code&gt;

Next we can use a JavaScript call to change the CSS visibility to &apos;visible&apos;. In this way if JavaScript is disabled the graphic remains hidden, if JavaScript is enabled it turns in on.

&lt;code&gt;
&lt;s/cript&gt;
	// show the map
	document.getElementById(&apos;interactiveMap&apos;).style.visibility = &quot;visible&quot;;
&lt;/s/cript&gt;
&lt;/code&gt;

Lastly we can create the content that we want to see instead of the map. Don&apos;t forget to wrap it all in the no script html tag.

&lt;code&gt;
&lt;noscript&gt;Your browser does not support JavaScript!
&lt;p&gt;&lt;/p&gt;

&lt;!--- get the regions list ---&gt;
&lt;cfset variables.regions = getRegions()&gt;

&lt;ul&gt;
&lt;cfloop query=&quot;variables.regions&quot;&gt;
&lt;li&gt;&lt;a href=&quot;region.cfm?region=#variables.regions. regionid#&quot;&gt;#variables.regionName#&lt;/a&gt;&lt;/li&gt;
&lt;/cfloop&gt;

&lt;/ul&gt;
&lt;/noscript&gt;
&lt;/code&gt;

By altering the css properties like this we can have the map and the no script content occupy the same real estate on the screen. If you simply populate the no script with the alternative, then the space the map occupies stays occupied, just by a hidden map, giving you a large blank space.
				
				</description>
				
				
				<category>Accessibility</category>
				
				<category>CSS</category>
				
				<category>Javascript</category>
				
				<pubDate>Thu, 04 Feb 2010 17:25:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2010/2/4/NoScript-alternatives-for-Javascript-content-using-CSS-visibilty</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Strict or Transitional DTD type validation, worth hacking just to pass?</title>
				<link>http://www.mccran.co.uk/index.cfm/2010/1/22/Strict-or-Transitional-DTD-type-validation-worth-hacking-just-to-pass</link>
				<description>
				
				An area of web development that I previously had little exposure to was WCAG validation. This is the industry standard for Accessibility coding for web platforms. For version two (V2) of the WCAG there are three standards, A, AA and triple A (AAA). Each represents different levels of Accessible compatibility.

What this also does is validate against the W3C doctype standards. This is where my problems arose. The main aim of the doctype standard is to clearly define a separation layer between content and behaviour. In practical terms this equates to best practices such as having an external .CSS files rather than inline styling, and declaring the language types for scripting, such as JavaScript etc.

Using a free online tool, &lt;a href=http://www.totalvalidator.com/ target=_blank&gt;http://www.totalvalidator.com/ &lt;/a&gt; you can check if your site is W3C and WCAG complaint. It will base the validation on the doctype declared in your html. There are three types of DTD declaration for html 4.01.

&lt;code&gt;

&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt;

&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;

&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/frameset.dtd&quot;&gt;

&lt;/code&gt;

You can read more about Doctypes here: &lt;a href= http://www.w3schools.com/tags/tag_DOCTYPE.asp target=_blank&gt; http://www.w3schools.com/tags/tag_DOCTYPE.asp&lt;/a&gt;

The main difference between these is that the frameset DTD will accept frameset as valid html, whereas the others will not. Also the Strict DTD imposes a very tight restriction of what is accepted as valid in comparison to the Transitional DTD. One is a Strict adherance to the standard, whereas the other shows that you are Transitioning from old code into the new.

The site &lt;a href= http://24ways.org/2005/transitional-vs-strict-markup target=_blank&gt; http://24ways.org/2005/transitional-vs-strict-markup&lt;/a&gt; goes into more detail about what the exact differences are, what I am going to discuss is the option of creating functional hacks, merely to pass validation.

One of the deprecated attributes in Strict validation is the target attribute.

&lt;code&gt;
&lt;a href=http://www.mywebsite.com target=_blank&gt;Follow this link to go to my website&lt;/a&gt;
&lt;/code&gt;

We are all familiar with this attribute, but when you examine it you find that it is actually a declaration of behaviour. We are forcing the user into a specific action. IE open a new window. As a best practice guideline whenever we have a link on a site that exits that site, we open a new window. The only work around for this is creating a specific JavaScript function to open a new window, as this will not be marked as invalid. This seems overkill, just to pass validation.

So I am left with the dilemma that if I want my sites to pass Strict DTD validation I must create a JavaScript hack, or compromise the functionality. I&apos;d like to pass the validation, but I view the functionality as key to a site, so it&apos;s an easy decision for me.
				
				</description>
				
				
				<category>Best practices</category>
				
				<category>Accessibility</category>
				
				<category>Javascript</category>
				
				<category>HTML</category>
				
				<category>Web technologies</category>
				
				<pubDate>Fri, 22 Jan 2010 12:34:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2010/1/22/Strict-or-Transitional-DTD-type-validation-worth-hacking-just-to-pass</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Creating a CSS only cross browser drop down menu</title>
				<link>http://www.mccran.co.uk/index.cfm/2010/1/8/Creating-a-CSS-only-cross-browser-drop-down-menu</link>
				<description>
				
				I&apos;ll say this up front, I&apos;m not a CSS guru. I like CSS, but it can be incredibly frustrating. One of the clients I am currently producing work for requires a high level of Accessibility. High enough that we need to avoid using JavaScript unless any script has a &quot;Non&quot; JavaScript equivalent.

The site navigation is through a top level horizontal menu, but what if we also want a drop down menu? Can we do it in CSS only, and it still be Firefox, Internet Explorer 6,7 and 8 compatible? 

Yes, we can, but it&apos;s a lot of code, and it&apos;s not pretty. The basic concept behind most CSS menus is to use a list, and transform each list item to suit your styling. So we will create a div, with a class of menu. Then create a list inside it.

&lt;code&gt;
	&lt;div class=&quot;menu&quot;&gt;
		&lt;ul&gt;
		&lt;li&gt;&lt;a href=&quot;&quot;&gt;Top menu option
		&lt;!--[if IE 7]&gt;&lt;!--&gt;&lt;/a&gt;&lt;!--&lt;![endif]--&gt;
		&lt;!--[if lte IE 6]&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;![endif]--&gt;
	
		&lt;ul&gt;
			&lt;li&gt;&lt;a href=&quot;&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href=&quot;&quot;&gt;Link 2&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href=&quot;&quot;&gt;Link 3&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href=&quot;&quot;&gt;Link 4&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href=&quot;&quot;&gt;Link 5&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href=&quot;&quot;&gt;Link 6&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;

			&lt;!--[if lte IE 6]&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/a&gt;&lt;![endif]--&gt;
		&lt;/li&gt;
		
		&lt;/ul&gt;
	
	&lt;/div&gt;
&lt;/code&gt;

Notice that there are some specific if statements relating to different versions of Internet Explorer. these basically make the functionality the same for each version, they are compensating for the differences in code handling between IE versions.

Next create a set of CSS styles to alter the appearance of the list. I am not going to go into the CSS line by line, as it is commented, but I&apos;ll explain the methodology behind it.

The top level menu item is always displayed, but the list is hidden using &quot;visibility:hidden&quot;. When the user mouse&apos;s over the menu div the CSS applies a:hover ul{visibility:visible;. This makes the list visible. 

&lt;code&gt;

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

.menu {width:149px; height:32px; position:relative; z-index:100;border-right:1px solid #000; font-family:arial, sans-serif;}

/* hack to correct IE5.5 faulty box model */
* html .menu {width:149px; w\idth:149px;}

/* remove all the bullets, borders and padding from the default list styling */
.menu ul {padding:0;margin:0;list-style-type:none;}
.menu ul ul {width:149px;}

/* float the list to make it horizontal and a relative position so that you can control the dropdown menu positon */
.menu li {float:left;width:149px;position:relative;}

/* style the links for the top level */
.menu a, .menu a:visited {display:block;font-size:12px;text-decoration:none; color:#fff; width:138px; height:30px; border:1px solid #000; border-width:1px 0 1px 1px; background:#c0c0c0; padding-left:10px; line-height:29px; font-weight:bold;}

/* a hack so that IE5.5 faulty box model is corrected */
* html .menu a, * html .menu a:visited {width:149px; w\idth:138px;}

/* style the second level background */
.menu ul ul a.drop, .menu ul ul a.drop:visited {background:#c0c0cc url(arrow.gif) no-repeat 130px center;}

/* style the second level hover */
.menu ul ul a.drop:hover{background:#c0c0cc url(arrow.gif) no-repeat 130px center;}
.menu ul ul :hover &gt; a.drop {background:#c0c0cc url(arrow.gif) no-repeat 130px center;}

/* hide the sub levels and give them a positon absolute so that they take up no room */
.menu ul ul {visibility:hidden;position:absolute;height:0;top:31px;left:0; width:149px;border-top:1px solid #000;}

/* another hack for IE5.5 */
* html .menu ul ul {top:30px;t\op:31px;}

/* style the table so that it takes no part in the layout - required for IE to work */
.menu table {position:absolute; top:0; left:0; border-collapse:collapse;}

/* style the second level links */
.menu ul ul a, .menu ul ul a:visited {background: ghostwhite; color:#000; height:auto; line-height:1em; padding:5px 10px; width:128px;border-width:0 1px 1px 1px;}

/* yet another hack for IE5.5 */
* html .menu ul ul a, * html .menu ul ul a:visited {width:150px;w\idth:128px;}

/* style the top level hover */
.menu a:hover, .menu ul ul a:hover{color:#000; background:#c0c0cc;}
.menu :hover &gt; a, .menu ul ul :hover &gt; a {color:#000; background:#c0c0cc;}

/* make the second level visible when hover on first level list OR link */
.menu ul li:hover ul,
.menu ul a:hover ul{visibility:visible;}
&lt;/code&gt;

There are also a lot of other browser specific hacks present, as the aim was to get the menu working in every Internet Explorer version, and be Accessible.

There is a demo of this here: &lt;a href=&quot;http://www.mccran.co.uk/css/demo.cfm&quot; target=&quot;_blank&quot;&gt;CSS menu demo&lt;/a&gt;
				
				</description>
				
				
				<category>Internet Explorer</category>
				
				<category>Accessibility</category>
				
				<category>CSS</category>
				
				<category>Browsers</category>
				
				<category>HTML</category>
				
				<pubDate>Fri, 08 Jan 2010 16:47:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2010/1/8/Creating-a-CSS-only-cross-browser-drop-down-menu</guid>
				
				
			</item>
			
		 	
			</channel></rss>