Geoff Chappell - Software Analyst
This website is constructed around the premise that although each page may know of other pages, and naturally will link to other pages, it need know only of itself. The place of a page within the site is not a property of that page but of the site. The navigational support provided at this site is therefore external to all the document pages. Being one of those computer users who finds a directory tree entirely natural for depicting the storage of files, I have chosen to present the navigational support as a table of contents (TOC) that looks very much like a directory tree from a file system.
As it happens, there are several TOCs. The site has several subwebs, which are very nearly disjoint, in the sense that few pages in one subweb link naturally to any pages in any other subweb. Add that some of these subwebs run to several hundred pages (already) and it makes sense, if only to me, that each subweb should have its own table of contents.
The basic design is that the document pages know nothing of any TOC, except by including scripts and style sheets that are common to all document pages. Not only does this mean that I can reorganise the TOC without having to edit any document files, let alone to break any links, it also means that you can be sure of not missing any of a page’s text for want of running the scripts that are meant to show the TOC with the page.
If scripts on a document page do run as expected, the page is rebuilt with frames. There is an alternate user interface for when those scripts do not run, but I think the frames are much better, not least for being interactive. The frameset has a banner across the top and a table of contents at the left. What remains is for the document page.
You select a subweb by clicking on a tab in the banner. The current subweb, i.e., the one that contains the currently loaded document, is highlighted.
A planned extension is that some of what is presently empty space in the banner will take input for searching this site. However, do not expect that I actually will grapple with this unless I get sufficient feedback to say that it’s really wanted.
A test is under way. For a very primitive search facility, go to Search This Site.
Most entries in the TOC are links to document pages. Clicking on the link in the left pane loads the corresponding document into the right pane.
The TOC is organised as a multi-level list which you can expand and collapse according to what interests you while you browse the site. Note that multiple branches can be open simultaneously, so that you may move easily between pages without my having planned any particular connection between those pages. (I am astonished at how many web-based TOCs permit only one branch to be expanded at a time.)
To expand a collapsed folder or collapse an expanded one, simply click on the icon immediately to the folder’s left. When you first expand a folder, it opens only one level deeper into the tree. If you collapse a folder, any expansions that you had made deeper into the tree are restored if you re-expand that folder.
To expand a folder and all its subfolders, even if any are already expanded, hold down the Ctrl key for the click. To collapse a folder and all its subfolders, hold down both the Ctrl and Shift keys. Collapsing a collapsed folder has no immediate visual effect, but is useful as a reset: it clears any expansions that had been made deeper into the tree. A re-expansion will then open only one level, as if the folder had never yet been expanded.
The TOC item that represents the currently loaded page is always highlighted. There should never be any occasion to want to resynchronise the document page with the table of contents. If there is, and it isn’t resolved by refreshing the page, it is a bug. Please try to identify steps for reproduction, and then write to me about it.
If you click on a link in a document page and this link takes you to another page at this site, then the target page becomes the current link in the table of contents and its subweb is highlighted in the banner. If the source and target are in the same subweb, then whatever expanding and collapsing you have done in that subweb’s TOC is preserved. If the source and target are in different subwebs, then although the state of the source subweb’s TOC is lost for new browsing, it is recoverable by using the browser’s Back button.
When the TOC has the focus, the usual Internet Explorer keyboard shortcuts of Tab and Shift-Tab work to move the focus down the table and back up (respectively), from one link to another, but only among those links that you have exposed by your expanding and collapsing of folders. The Home and End keys move the focus to the first and last links. To get the focus to the TOC, it helps to remember that in accordance with a general Windows principle of using the Ctrl key to move in bigger steps, Ctrl-Tab and Ctrl-Shift-Tab are available for moving the focus between frames. (When tabbed browsing is enabled, these keys move the focus between tabs. To move between frames, use F6 and Shift-F6 instead.)
Some other browsers treat Tab and Shift-Tab much as does Internet Explorer. Some, namely Opera and Safari, seem not to.
To expand or collapse a folder with the keyboard, get the focus to that folder and then press one of the following keys from the numeric keypad:
|+ (plus)||expand the folder|
|- (minus)||collapse the folder|
|* (multiply)||expand the folder and all its subfolders|
|/ (divide)||collapse the folder and all its subfolders|
These key assignments may be familiar, with slight variation, as those of the folder tree in the Windows Explorer and more generally of the tree-view control. A difference from tree views in such programs as the Windows Explorer is that arrow keys do not act either to move the focus or to expand or collapse folders: Internet Explorer has the arrow keys act on the scrollbars instead and I have chosen to work with that rather than to change it.
The minus and divide keys also act on list items that are not folders. They then collapse the enclosing folder, without your having had to move the focus to it.
These keyboard shortcuts also work in most browsers, but Opera is again an exception.