<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>christomlinson.name &#187; javascript</title>
	<atom:link href="http://christomlinson.name/tags/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://christomlinson.name</link>
	<description></description>
	<lastBuildDate>Tue, 01 May 2012 21:12:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>KeeFox 0.4 source code released</title>
		<link>http://christomlinson.name/articles/keefox-04-source-code-released/</link>
		<comments>http://christomlinson.name/articles/keefox-04-source-code-released/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 13:46:55 +0000</pubDate>
		<dc:creator>Luckyrat</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chris]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[keefox]]></category>
		<category><![CDATA[keepass]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[tomlinson]]></category>

		<guid isPermaLink="false">http://christomlinson.name/?p=31</guid>
		<description><![CDATA[The latest version of KeeFox (0.4)  is now ready. The source code is now contained within a public subversion (SVN) code repository at https://keefox.svn.sourceforge.net/svnroot/keefox/ You could start by downloading the binary version (Windows only). I can&#8217;t promise it will work &#8230; <a href="http://christomlinson.name/articles/keefox-04-source-code-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The latest version of KeeFox (0.4)  is now ready. The source code is now  contained within a public subversion (SVN) code repository at  https://keefox.svn.sourceforge.net/svnroot/keefox/</p>
<p>You could start by downloading the <a href="../dl/keefox/xpi/0.4.xpi">binary version</a> (Windows only). I can&#8217;t promise it will work and <span style="text-decoration: line-through;">I&#8217;m sure it&#8217;s  not necessary for me to suggest early and regular backups of any  important data on your machine</span> so I won&#8217;t. It is in the form of  a Firefox add-on but please only install it on a development Firefox  user profile because it&#8217;s not been tested alongside many other add-ons  and data loss is a possibility. I have done limited testing as an  administrator on a 32bit Win XP machine with .NET, KeePass 2.06 and  Firefox 3.0.5 already installed. I recommend reading the information on <a href="http://keefox.sourceforge.net/0.4-build-guidelines.html">this  KeeFox project page</a> first. Please let me know if you do try it out  and say how successful it was and what environment you were working in.</p>
<p>There were two main groups of tasks I wanted to finish by version 0.4:  an installation process via a firefox add-on and a very basic UI to  allow passwords to be saved and filled in. These have been pretty much  finished although there are a number of little tweaks still to be made  and there will no doubt be gradual improvements to both of these aspects  for many months to come.</p>
<p>There are a number of main tasks I want to get finished before the  release of 0.5:</p>
<ol>
<li>Handle multiple KeePass databases (or at the very least, don&#8217;t  crash in their presence!)</li>
<li>Develop the UI far enough that using and saving passwords is  pretty intuitive</li>
<li>Create an options panel to allow the user to manage some  configurable add-on options</li>
<li>Create a UI for the user to choose to load a site and auto-login  (in the form of a drop down menu)</li>
<li>Extend (4) to integrate with the user&#8217;s bookmarks (and history)  probably via a customised firefox places view with annotations</li>
</ol>
<p>The last three tasks can be separated from the other parts of the code  easily enough so I think that they are ideal candidates for other people  to help with. They will be written using mainly javascript and XUL,  with CSS being required at a later date too (although this can be added  by me or someone else if you prefer). If you&#8217;re interested in knowing  more about what&#8217;s involved, leave a comment below or contact me.</p>
<p>I&#8217;m not updating the road-map for this release because I feel that the  above list is more useful in the short term; in the long term I&#8217;m aiming  to start using a public task tracker for version 0.6 onwards. The rough  ideas in the road-map still apply, although I think it&#8217;s unlikely I&#8217;ll  catch up the extra month it took to reach the 0.4 stage so it may be  more realistic to expect a final release in late summer 2009. Of course,  if I get a lot of help, this could be brought forward a bit!</p>
<p>If I get no offers of help for the three items mentioned above by the  end of January 2009, I&#8217;ll start work on them myself and I roughly  estimate that 0.5 would be released in mid-March. If others can help out  then it could happen around a month earlier.</p>
<p>The version 0.4 code may be useful for:</p>
<ul>
<li>developers that are keen to learn more about how KeeFox will be  architected</li>
<li>developers that would like to help develop KeeFox, maybe through  one of the tasks described above</li>
</ul>
<p>Developers that are interested in seeing how a Firefox C++ XPCOM  extension can be built using Visual Studio 2008, have a particular  interest in seeing an ICE IPC example or are looking for ideas about how  to integrate third party software with Firefox could also find it  useful although version 0.2 may be a better place to start since it is  less specific to the eventual aims of this project.</p>
<p><a href="http://keefox.sourceforge.net/0.4-build-guidelines.html">Compilation  requirements and guidelines</a> are on the sourceforge <a href="http://keefox.sourceforge.net/">KeeFox project site</a></p>
]]></content:encoded>
			<wfw:commentRss>http://christomlinson.name/articles/keefox-04-source-code-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>KeeFox 0.2 source code released</title>
		<link>http://christomlinson.name/articles/keefox-02-source-code-released/</link>
		<comments>http://christomlinson.name/articles/keefox-02-source-code-released/#comments</comments>
		<pubDate>Sun, 05 Oct 2008 21:46:52 +0000</pubDate>
		<dc:creator>Luckyrat</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chris]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[keefox]]></category>
		<category><![CDATA[keepass]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[tomlinson]]></category>

		<guid isPermaLink="false">http://christomlinson.name/?p=33</guid>
		<description><![CDATA[KeeFox 0.2 has been released. I was just about to get stuck into writing the actual code that will handle reading and writing passwords from KeePass to/from Firefox but thought it might be a good time to take a new &#8230; <a href="http://christomlinson.name/articles/keefox-02-source-code-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>KeeFox 0.2 has been released.</p>
<p>I was just about to get stuck into writing the actual code that will  handle reading and writing passwords from KeePass to/from Firefox but  thought it might be a good time to take a new source code snapshot and  call it version 0.2 so the code is now available from the <a href="http://keefox.sourceforge.net/">KeeFox sourceforge project website</a></p>
<p>I&#8217;ve also updated the roadmap at <a href="../articles/keefox-task-list">KeeFox task  list</a></p>
<p>There&#8217;s still nothing much to look at from an end-user perspective and  I&#8217;ve now abandoned the idea of integrating directly with the existing  Firefox 3 login manager becuase it is not completely suitable (see <a href="../articles/who-will-implement-nsiloginmanagerstorage">Who  will implement nsILoginManagerStorage?</a> for a more in depth reason).</p>
<p>I think I&#8217;ve identified a pretty workable installation process which  should get new users up and running with minimal fuss &#8211; I&#8217;ve done enough  work on this so I can be confident it will work but there are still a  few missing links that I will fill in over the coming months.</p>
<p>As with 0.1, I&#8217;ve not really tested the compiled application at all so I  would recommend restricting yourself to just reading the source code  (and maybe attempting a compilation) for a little while longer.</p>
<p>The code may be useful for:</p>
<ul>
<li>developers that are keen to learn more about how KeeFox will be  architected</li>
<li>developers that would like to help understand KeeFox in order to  help me get it on the road to a beta release early next year</li>
<li>developers that are interested in seeing how a Firefox C++ XPCOM  extension can be built using Visual Studio 2008</li>
<li>developers with a particular interest in an ICE IPC example</li>
<li>developers looking for ideas about how to integrate third party  software with Firefox</li>
</ul>
<p><a href="http://keefox.sourceforge.net/0.2-build-guidelines.html">Compilation  requirements and guidelines</a> are on the sourceforge <a href="http://keefox.sourceforge.net/">KeeFox project site</a></p>
]]></content:encoded>
			<wfw:commentRss>http://christomlinson.name/articles/keefox-02-source-code-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>KeeFox task list</title>
		<link>http://christomlinson.name/articles/keefox-task-list/</link>
		<comments>http://christomlinson.name/articles/keefox-task-list/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 21:26:31 +0000</pubDate>
		<dc:creator>Luckyrat</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chris]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[keefox]]></category>
		<category><![CDATA[keepass]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[tomlinson]]></category>

		<guid isPermaLink="false">http://christomlinson.name/?p=44</guid>
		<description><![CDATA[THIS PAGE IS DEPRECATED Please see http://sourceforge.net/apps/trac/keefox/report/3 for an up to date task list. All dates are just an early estimation and I won&#8217;t be making any effort to treat them as deadlines but I hope they are vaguely realistic. &#8230; <a href="http://christomlinson.name/articles/keefox-task-list/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tip">
<p>THIS PAGE IS DEPRECATED</p>
<p>Please see <a href="http://sourceforge.net/apps/trac/keefox/report/3">http://sourceforge.net/apps/trac/keefox/report/3</a> for an up to date task list.</p>
</div>
<p>All dates are just an early estimation and I won&#8217;t be making any effort  to treat them as deadlines but I hope they are vaguely realistic. Task  assignments to particular versions are just a prediction of where I  currently think a feature could fit into the project development  timeline but again, it&#8217;s all subject to change as the project develops.</p>
<h3>ongoing tasks</h3>
<ul>
<li>Review of code to reduce memory leaks and improve performance</li>
<li>Development of thorough self-test routines</li>
<li>Locale development (translation of user interface to other  languages)</li>
<li>Peer-review of code to highlight security issues</li>
<li>icon. fox + padlock? copyright issues if too similar to firefox  or KP?</li>
</ul>
<h3>0.1 [August W4]</h3>
<ul>
<li><span style="text-decoration: line-through;">FF LoginManagerStorage implementation (maybe missing  some parts like entry deletion or http realm logins)</span> [2008-10-05: done then cancelled]</li>
<li>prompt for DB open as required [2008-10-05: done]</li>
</ul>
<h3>0.2 [September W3]</h3>
<ul>
<li>handle keepass start and close events in FF (how to tell  difference between KP not running and not-installed? ICE runtimes?)  [2008-10-05: partially done]</li>
<li><span style="text-decoration: line-through;">complete LoginManagerStorage impl. if required (what  happens with &#8220;clear passwords&#8221; integration?!, etc.)</span> [2008-10-05: cancelled]</li>
</ul>
<h3>0.3 [October W3]</h3>
<ul>
<li>Improved LoginManager (ILM) [2008-10-05:  moved from 0.4]</li>
<li>ILM: replicate built in login manager (extend existing JS code)  [2008-10-05:  moved from 0.4]</li>
<li>ILM: handle disabling/enabling built in login manager &#8211; options +  (un)install [2008-10-05:  moved from 0.4]</li>
</ul>
<h3>0.4 [November W4]</h3>
<ul>
<li><span style="text-decoration: line-through;">Allow choice between standard and ILM?</span> [2008-10-05: cancelled]</li>
<li><span style="text-decoration: line-through;">Make sure passwords don&#8217;t get corrupt when swapping  between LMs</span> [2008-10-05: cancelled]</li>
<li><span style="text-decoration: line-through;">Clean LM swaps (data migrations if necessary)</span> [2008-10-05: cancelled]</li>
<li>match multiple domains for one KP entry (e.g. hotmail, live.com)</li>
<li>Cleanly manage &#8220;new user&#8221; experience in terms of downloading  keepass and setting up new database [2008-10-05: partialy done; moved  from 0.3]</li>
<li>Deal with non-installed pre-requisites (e.g. KeePass v2)  [2008-10-05: partially done; moved from 0.3]</li>
<li>Package/release system (XPI?) [2008-10-05: planned and mostly  done; moved from 0.3]</li>
<li>test binary / installation process on seperate machine</li>
</ul>
<h3>0.5 [December W4]</h3>
<ul>
<li>XUL locale support [2008-10-05:  moved from 0.3]</li>
<li>FF based options control system</li>
<li>configurable default database and group</li>
<li>Folders/groups &#8211; probably through integration with KP Groups and  Firefox places (FFP)</li>
<li>FFP: tie places URL to KP URL</li>
<li>FFP: custom places view? used to render a &#8220;quick login&#8221; drop  down menu system</li>
<li>publish first binary version</li>
</ul>
<h3>0.6-0.7 [January/February]</h3>
<ul>
<li>integration with some other plugins. e.g. Nexus&#8217;s Firefox to  KeePass</li>
<li>FFP: integrate with location bar drop down list, history and  bookmarks folder (option to log in straight from there)</li>
<li>FFP: options to show/hide links without logins in main drop down  system</li>
<li>configurable custom-data location</li>
<li>ILM: support for deleting passwords, etc.</li>
<li>ILM: auto-submit</li>
<li>ILM: modal box option [2008-10-05: may not be done before  version 1.0]</li>
<li>ILM: in-page pop-over login option</li>
<li>ILM: default auto-submit selection, with hot-key over-ride</li>
<li>(beta 1?)</li>
</ul>
<h3>0.8 &#8211; 1.0 [March - July 2009]</h3>
<ul>
<li>ILM: allow option to not require master password for everything  [2008-10-05: moved from 0.4; may not be done before version 1.0]</li>
<li>ILM: Support for custom fields (e.g. radio buttons, checkboxes,  PIN numbers, etc.)</li>
<li>Save after first registration functionality (ILM only?)</li>
<li>track how many times logins used (FFP: show popular sites, order  by frequency, hide infrequently used etc.)</li>
<li>User-identified &#8220;essential improvements&#8221;</li>
<li>thorough bug testing</li>
<li>user documentation</li>
<li>user help,tooltips,wizzards,etc.</li>
<li>notices, etc. in appropriate places in main firefox UI so user  knows KeePass is storing passwords</li>
<li>(beta 2, RCs?)</li>
</ul>
<h3>1.1+</h3>
<ul>
<li>Identities (inc. openID?)</li>
<li>KeePass v1 support</li>
</ul>
<h3>Maybe TODO</h3>
<ul>
<li>Force KeeICE to only communicate with KeeFox</li>
<li>SSL encrypt ICE communication channel (store private key in KP  DB?)</li>
<li>OpenID: Haven&#8217;t given this enough thought but maybe some  integration of openID features could be good.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://christomlinson.name/articles/keefox-task-list/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>KeeFox technical introduction</title>
		<link>http://christomlinson.name/articles/keefox-technical-introduction/</link>
		<comments>http://christomlinson.name/articles/keefox-technical-introduction/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 19:57:59 +0000</pubDate>
		<dc:creator>Luckyrat</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chris]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[keefox]]></category>
		<category><![CDATA[keepass]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[tomlinson]]></category>

		<guid isPermaLink="false">http://christomlinson.name/?p=86</guid>
		<description><![CDATA[This article will give an overview of the requirements and technologies used at this early stage of KeeFox development. System requirements KeePass 2 .NET 2 Firefox 3 Windows XP All above could potentially be expanded in the future but this &#8230; <a href="http://christomlinson.name/articles/keefox-technical-introduction/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This article will give an overview of the requirements and technologies  used at this early stage of KeeFox development.</p>
<h4>System requirements</h4>
<ul>
<li>KeePass 2</li>
<li>.NET 2</li>
<li>Firefox 3</li>
<li>Windows XP</li>
</ul>
<p>All above could potentially be expanded in the future but this will  depend on available time and demand (e.g. will anyone even be using  Firefox 2 by the time the version for Firefox 3 is stable?). I&#8217;m  particularly keen to get KeeFox working on Linux and Mac systems but  until KeePass 2 is stable on those platforms or we can find a way to  make KeePass version 1 play along, it won&#8217;t really be that practical &#8211;  all offers of help are gratefully received.</p>
<h4>Key technologies used</h4>
<ul>
<li>C#</li>
<li>C++</li>
<li>ICE</li>
<li>XPCOM</li>
<li>Javascript</li>
<li>XUL</li>
</ul>
<h4>Rough chain of events for an &#8220;average&#8221; use case</h4>
<ol>
<li>XUL interface elements in firefox manipulated by user</li>
<li> javascript event handlers call appropriate XPCOM functions in  the C++ firefox add-on DLL</li>
<li> which in turn calls proxy methods on shared data objects  (defined in ICE&#8217;s IDL language)</li>
<li> ICE DLL processes the function calls, does its magic and ends  up calling the real methods (implemented in C#)</li>
<li> these functions manipulate the active KP plugin instance (to  read/write, prompt user for master password, etc.)</li>
</ol>
<h4>Background to KeeFox implementation technologies</h4>
<p>If anyone has ever done anything like this before, they&#8217;ve either not  put it online or managed to keep it beyond the eye of Google so I hope  that as the project progresses I can expand on some of the technical  challenges for the sake of anyone else that wants/needs to implement  other software that uses these technologies. To start with, your best  bet is to take a look at the source code which I will be posting online  soon (e-mail me if you&#8217;re in a hurry) because the key issues have been  largely solved in there already and it&#8217;s now &#8220;just&#8221; a matter of fleshing  out all the detail (which would be mostly irrelevant to a different  project anyway). Keep an eye out here for any new content I tag with  keywords you&#8217;re interested in. <a title="RSS feed link - opens in new window" href="../articles/feed/rss" target="_blank">RSS</a> is your friend  (although not your best friend &#8211; I&#8217;ve currently got no way to subscribe  to individual tag updates).</p>
<p>I also toyed with .NET IPC channels and a mixture of managed and  unmanaged C++ code in a rather complex configuration before settling on  using ICE for the IPC. Part of the problem with the first approach was  that Firefox won&#8217;t play along with any DLLs that make calls into the  managed .NET application space. This meant I had to write a couple of  extra layers and play with some rather complex managed/unmaged C++  wrappers in order to make it all work. I had it working for a while but  the development (and performance?) overhead of multiple Marshalling  steps was just too big so I scrapped that idea and went looking for some  third party library to help (ICE).</p>
]]></content:encoded>
			<wfw:commentRss>http://christomlinson.name/articles/keefox-technical-introduction/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Super Crumbtrail</title>
		<link>http://christomlinson.name/articles/supercrumbtrail/</link>
		<comments>http://christomlinson.name/articles/supercrumbtrail/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 22:55:52 +0000</pubDate>
		<dc:creator>Luckyrat</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chris]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[super crumbtrail]]></category>
		<category><![CDATA[tomlinson]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://christomlinson.name/?p=39</guid>
		<description><![CDATA[In migrating from Joomla to WordPress, I have not had enough time to investigate replicating this crumbtrail and menu system so this article refers to site features that are no longer visible (comments on the concept are still welcome however). &#8230; <a href="http://christomlinson.name/articles/supercrumbtrail/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="tip">In migrating from Joomla to WordPress, I have not had enough time to investigate replicating this crumbtrail and menu system so this article refers to site features that are no longer visible (comments on the concept are still welcome however).</div>
<p><span id="more-39"></span>Did you notice anything different about the top navigation menu or crumbtrail on this site?</p>
<p>If not, look more carefully and (javascript permitting) you&#8217;ll see a crumbtrail with drop down submenus on some of the crumbs.</p>
<p><img src="/images/stories/supercrumbtrail-screenshot.png" alt="Screen shot of Super crumbtrail menu system" width="410" height="190" /></p>
<p>So what are your first impressions? Did you understand it straight away? If not, did you see either a crumbtrail or a menu system or was it so confusing that it&#8217;s a miracle you even managed to find this article? Have you seen something similar before that may have influenced your understanding of the concept?</p>
<p>The rest of the article discusses this idea in a lot more detail and some experience of web design might be helpful to get the most out of it but I&#8217;m keen to hear everyone&#8217;s comments, not just the more technical visitor so don&#8217;t feel obliged to read and understand the main content before you let me know what you think.</p>
<p>I wanted to find a way to save some valuable screen space but I still like being able to always see where you are on a website and a crumbtrail is one very good method of conveying that information. Equally, it would be a bit useless if there were no navigation menu on this site so I thought the two could be combined.</p>
<p>This is actually an idea I&#8217;ve wanted to try out for many years but this is the first chance I&#8217;ve had to implement it. I can&#8217;t say it&#8217;s the first time this has been done on a website because I&#8217;ve seen relatively few of the world&#8217;s websites but I do come across a large number of sites and have not seen this approach before so I&#8217;m certain that currently it is at least very rare.</p>
<p>Although websites using this approach seem rarer than unappealing cakes I have recently seen a similar idea in Windows Vista Explorer and some rarer applications (I think many were Linux programs) so it may be a navigation method that is much more widespread in five years as people get used to the approach in offline applications.</p>
<p>I think it is an intuitive way to navigate a website but the visual appearance is going to make or break it. If it&#8217;s not obvious that the words are part of a drop down menu then the user could be stuck on their first page view. I hope that the left and down arrows I&#8217;ve used make this obvious enough but there is probably room for improvement in that aspect of the design.</p>
<p>I was hoping to implement this using only CSS so that it would work for those who dislike scripts on websites and so it could be more accessible. This wasn&#8217;t possible, mainly due to limitations in IE&#8217;s CSS support but also because Joomla and the extensions I have installed in it can not generate the source code needed (I could write something to do it myself but I&#8217;ve not really got time at the moment). So my compromise solution is to generate a separate crumbtrail and menu and then combine them using client side javascript.</p>
<p>Here&#8217;s what visitors with various configuration settings should see:</p>
<table border="1" cellspacing="1" cellpadding="10">
<caption><span style="text-decoration: underline;">Super Crumbtrail behaviour under various client-side conditions</span></caption>
<tbody>
<tr>
<td></td>
<td><span style="text-decoration: underline;">CSS available</span></td>
<td><span style="text-decoration: underline;">CSS off</span></td>
</tr>
<tr>
<td><span style="text-decoration: underline;">Javascript on</span></td>
<td>Full Super Crumbtrail system with multiple submenu drop downs from a horizontal crumbtrail base</td>
<td>Lists of menu items. Some sections may be repeated in different parts of the list (e.g. &#8220;Projects&#8221; submenu when you&#8217;re viewing a page in that section)</td>
</tr>
<tr>
<td><span style="text-decoration: underline;">Javascript off</span></td>
<td>Full crumbtrail and full menu system that drops down from only the first &#8220;Home&#8221; item in the crumbtrail</td>
<td>Two seperate lists. One contains the full site menu structure and the other contains just the few items that make up the crumbtrail</td>
</tr>
</tbody>
</table>
<p>Of these situations, I think that only CSS off and Javascript on results in a more complicated navigation system than a separate crumbtrail and menu. My guess is that some accessibility systems such as screen readers may &#8220;see&#8221; this situation but I may be giving their scripting features too much credit. I&#8217;m not sure how much of a problem this will be in practice.</p>
<p>The approach does have other drawbacks which may make it entirely unsuitable for some sites. For example, the number of items to be sent to the client and for the javascript to process could get unwieldy rather quickly on a site with many (or a growing number of) menu items. Although it is feasible that the menu items for lower-level menus could be loaded through AJAX or similar to mitigate this effect. Or maybe a client-side cache of the full menu structure could be used to save on bandwidth?</p>
<p>As far as a name for this is concerned, I just jotted down the first name I thought of but I suppose you could call it any number of things including the Super Crumb, Super Crumb Menu, SCM, SCrumbM (if you&#8217;re into Rugby) or, if you really dislike the concept, SCuM.</p>
]]></content:encoded>
			<wfw:commentRss>http://christomlinson.name/articles/supercrumbtrail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

