Browsing Guide

For best viewing of this website, especially to navigate it with an expandable table of contents (TOC), a few things are expected of your browser. A quick summary is that this site:

If only for now, while the website is being reworked in early 2021, but very likely for some time after, it’s pretty much a guess which particular browsers will present the site acceptably. So far, it looks satisfactory for Internet Explorer versions 7 through 11 and for all versions of Microsoft Edge (inasmuch as this browser looks satisfactory for anything).

That you’ve got to this page may mean that something has gone wrong with your experience of the site’s presentation. Whether the scripts have misbehaved or you simply dislike the appearance, the quick summary perhaps does not suffice. All I can do is thank you for caring enough to persevere, and then I can try to explain myself and assure you that I will want, within limits that I explain, to correct whatever has gone wrong.

Small Screens

The last of the summary expectations may as well be got out of the way early. This website has not just hundreds of pages but thousands. Many are long, even very long. For most pages, the immediate topic has some complexity and fits into a subject whose topics are densely interconnected. It’s inconceivable to me that anyone could want to find their way through this volume without ready access to a directory of some sort, which the scripts present to the left of each page.

As if keeping this navigational support side-by-side with the content were not bad enough for small screens, there is the problem that many pages have tables of four columns or more. These tables are typically not simple grids whose rows might be restyled as cards for vertical scrolling, and doing so is anyway not the solution that some would have you believe: the eye and mind are not even nearly as good at matching the corresponding rows of cards as at lining up one column across different rows. I see no useful rearrangement of such tables for a screen that isn’t wide enough to show them whole.

Whatever the self-promotions of the mobile-phone industry and of web designers who see a business opportunity, some data are intrinsically not well-suited to being viewed in tiny pieces with little sense of how one relates to another and all fit into some broad context. This is true—indeed, obviously true—not just of the deeply technical material at this website but of many everyday things like restaurant menus. To make the best of presenting such data on mobile phones is commendable, but to pretend that presentation on mobile phones is the ideal for all data does nobody any good.

Catering for small screens is not a practical consideration for this website’s design. Of course, if I had a mobile phone myself, I might think differently. I might also if I had not perceived for years that Microsoft’s redesign of age-old user-interface functionality to suit mobile phones has reduced my everyday experience of Windows to one of recurring frustration (if not yet of misery). So there you have my prejudice!

Still, if you want to read my work on small screens and you can see how I might help you read it better, then please write to me and prod me to reconsider. Meanwhile, you get a few token attempts whose clumsiness may make your experience even worse. For instance, I’ve tried to arrange that the content and its navigational support are not side by side if your screen is too narrow for them both. All that shows of the TOC initially is a grey border to the left. Tap on it to reveal the TOC. Click on a link in the TOC and the next page will have the TOC hidden again.

No Pointer

However well or partially the narrow viewport of the typical mobile phone might be accommodated by rearranging the visual presentation for the reduced space, the greatly reduced means of interactivity is a problem all of its own. Though tapping on a touch screen might work something like clicking with a mouse or other pointing device, it perhaps more often doesn’t. However rich may be the gestures that can be recognised by a mobile phone or small tablet, nobody seems to have come up with any usable equivalent of the simple hover that most users of more capable computers have long taken for granted. The industry seems instead to have left the lack of a pointing device as an opportunity for web developers to get inventive. I see it more as something that users were prepared to trade in exchange for the convenience of a small computer that fits in the hand or pocket but which the manufacturers really ought to have got on top of by now.

I do not yet know what I can do or regard as feasible to do about the unavailability of some important user interactivity on mobile phones. I’ve long accepted that users who have no pointing device (and thus no hover) won’t have the tooltips that I think so helpfully explain why text is bold or coloured. But I imagined such users were exceedingly few in number and that I had anyway done more than many to accommodate them. For instance, navigating with the expandable TOC has always been possible through keystrokes as an alternative to clicking on the small plus or minus signs in the list-item marker boxes. Attempts at reading with mobile phones look like becoming ever more numerous, but I can’t welcome extra work for the scripts and stylesheets just to make up for the manufacturers of these phones or their browsers having not devised some standard means by which a finger communicates a tap or hover compatibly with the zillions of web pages that have already been written for interpreting a click or hover by a mouse.

Scripts

Though I believe the scripts greatly improve the site’s usability, I really do mean them to be merely optional. This certainly is not a website that requires you to enable scripts. If you have any trouble using the site with scripts disabled, then please do write to me about it. I will give you the highest priority.

I do not condemn you to a wilderness of blank pages or disorderly presentation for having the temerity to expect a decent show from the Internet unless you run scripts. Instead of telling you that scripts are required—or, worse, of condescending to tell you how to enable scripts—I have designed my content so that you are shown it all or at least a notice about what few things aren’t available. See for yourself: click here to open a window (or tab) that shows this page as if the scripts had not run, and then compare the two. For example, if scripts had run, this sentence would instead offer to open a window (or tab) that shows this page as if scripts had not run, and then you could compare the presentation with and without scripts.

Though executing the scripts is optional, I do mean very much that you should regard them as helpful and even as indispensable. The scripts re-present each page with a banner that has links to key pages and with a Table of Contents (TOC) that you can expand and collapse according to what relationships you find among my pages. The scripts also add little tweaks such as tooltips that explain why text is formatted. Why such support is not a feature to take for granted at all technical websites, I cannot begin to think. But if you don’t want them, there is a script-less user interface that keeps the TOC in one window (or tab) to navigate content in a separate window (or tab).

It may happen, of course, that the scripts do not work as intended. Whatever browser you use and in whatever configuration, if you run the scripts but get behaviour that seems defective, or even just deficient, then please write to me with an explanation of what is wrong. I very much will want to know. Especially if you also tell me what might be done about it, I will at least look at accommodating your solution.

Meanwhile, or even if the scripts work but you dislike the presentation, disable scripts as an immediate work-around. To view any one page as if scripts are disabled (but without having to reconfigure your browser, even momentarily), add “noscript=true” to the URL search string, and then refresh. The scripts will still run, but only enough to discover that you want them not to. If instead you add “noviewer=true”, the scripts will run just enough more to carry your preference from page to page as you browse.

Styling

In contrast to scripts being optional, your browser’s support for CSS is just assumed—much as I take for granted that your browser can read HTML. I try not to use anything more modern than HTML4 or CSS2 without providing a fallback, but not only wouldn’t I bet my life on my having always attended to this, I have no plan even to check for lapses.

Externalities

This website does not make your browser fetch anything from any other domain—not scripts, not even images—except if you choose to follow a link or click on an icon. There are no third-party frameworks. There are no ads. There is no phoning home. There is no tracking, though the server logs do of course record some IP address and other information that your browser sends with your HTTP requests.

This website does not store cookies on your computer.

This website does not download code, such as ActiveX controls or any other browser’s plug-ins, for execution on your computer.

No matter that these practices that this website avoids are standard practice all over the Internet, I regard them as unreasonable to demand of you and as unconscionable to try sneaking past you. Some are less indefensible than others, but all are more than faintly objectionable. If you see any attempt at any of these mischiefs, then please alert me to it so that I can investigate it and correct it (presumably at the hosting service’s server).

Server-Side Content Generation

Neither does this website indulge any server-side magic beyond some small matters such as compression, cache control and MIME types. Certainly there is no server-side content generation: everyone gets served the same content.

In part, this is because I prefer not to depend on server-side magic. Not only does the server run on an operating system that I don’t know in detail, but the nature of the hosting means that I anyway have only limited access to it for reconfiguration and none at all for debugging. Moreover, I have two servers to maintain: the live (Apache) server that you browse and another (IIS) on my own intranet. I don’t need the headache of maintaining server-side magic at all, but especially not in different ways at different servers.

The greater reason, however, is the philosophy of this website. Everything that is done here is entirely open to your inspection. That software on your computer is open to your inspection, albeit with difficulty, is much of what this site is about. That business on the Internet would move us to a world in which ever more of the software to which we trust our data will instead be on their computers, and not at all open to our inspection, is a game that I urge you to resist.

Obfuscation

For this same reason of openness, none of the scripts or stylesheets are “minified” or otherwise obfuscated. Instead, I go to the other extreme of commenting both scripts and stylesheets extensively and of leaving the comments for the world to see. This may well embarrass me—for although I am highly confident of my abilities as a Windows programmer in C++ and assembly language, I readily confess to being all at sea with HTML, CSS and JavaScript—but the website’s openness to inspection truly is very important to me.

I’m sorry if refusing to “minify” means you have a larger download than you might, but relative to other websites of this type, let alone to big websites, the scripts and stylesheets here are neither large nor numerous. The largest are mere tens of KB before server-side compression. (The limits I aim for are roughly 64KB for scripts and 16KB for stylesheets.) Your first access to any page at the site downloads six or seven of each—and at least four small GIF files, too. If you continue to other pages, there may be a few more scripts and stylesheets to download, but the ones that are common to all pages will likely come from a cache. Server-side cache control will be configured once the site’s reworking has settled down.

Supported Browsers

Until a reworking of scripts and stylesheets in 2021, most browsers that the server logs show as significant had at least been looked at, once upon a time, to check that they present the site acceptably. But once upon a time was roughly a decade ago. Even then, my observation of these browsers was no more than cursory and I had absolutely no intention of keeping up to date with the ridiculously numerous new versions. This website is for presenting the results of original research into highly technical issues of what Windows actually does. Mucking around with multiple browsers may be vital business for web designers but I see it as a deeply unwelcome interference with real work: it takes time away from research and leaves even less time for writing up.

For any browser, if this website’s behaviour seems deficient to you, then write to me with an explanation of what is wrong. My willingness to do anything about it may be limited, but if you help by teling me what might be done about it, I will at least look.

Non-Microsoft Browsers

When this website was newly created in 2007 and I wrote my first scripts, I was concerned only for Internet Explorer. When I revised the scripts later in 2007, in part for other browsers, and again in 2011, I concluded that several of the non-Microsoft browsers are very rude software. What I wrote in this page then about Google Chrome (version 16.0.912.75) is instructive, whether about the program then or about my prejudices both then and still:

Call me hopelessly old-fashioned, but I expect that any software on my computers can easily be made to install and run without phoning home. Though there does exist a stand-alone installer, its existence is certainly not made prominent by Google. After downloading and installing, Chrome seems to demand external support much more than do other browsers and to provide less ready ways of turning this behaviour off. This is rude software. If that’s not apparent from its being the only one of these browsers to install a desktop icon without asking, then it certainly is from the way that installation finishes with a window whose close box has been disabled to force you to choose a search engine there and then.

These browsers may now be much less badly behaved, but although Google Chrome has more recently become the most popular browser even for this website, I just cannot find any enthusiasm for having any of these browsers on computers that I care about, especially any computers that I ever connect to my intranet. Observation of these browsers won’t begin until I’m done with observation of the browsers that come with Windows and are on my intranet whether I like it or not.

Standards

The good news is that since these browsers’ adherents all praise these browsers’ long histories of standards compliance and I’m very conservative with my use of new programming features and techniques, we might reasonably hope that I’ve done nothing that troubles these browsers, at least not their recent versions.

There is some sarcasm here. The standards are not as certain as they might be. The interpretation of those standards is even less so. Browsers are very complex. Their implementation of those interpretations of those standards is highly variable. Modern programming culture dismisses users who haven’t updated to the very latest versions of their browsers (if not of everything). Authors are urged to rework their old pages which conformed to recommendations at the time of writing but are somehow now deficient. There are pros and cons to all this, but among the cons is that programmers (or the commercial enterprises that engage them) are more and more insulated from their mistakes.

I certainly have needed to accommodate bugs that these supposedly standards-compliant browsers have even with very basic functionality. See for instance scrollTop property breaks with body height 100% overflow auto. This particular case looks to me to involve nothing that isn’t two decades old, or thereabouts, yet although it was reported to Chromium in 2014 with as easy and minimal an example for reproduction as possibly ever exists, it seems not to have got fixed until 2017 (and can still be seen in the Microsoft Edge that shipped with Windows 10 editions in 2018). Even then, it’s hardly clear which browsers have it fixed and I see no trouble taken to recommend how web authors might work around the problem for readers who persist with old browsers. If I were a professional web developer, I might regard the devising of a work-around and the encouragement of readers to update their defective browsers as part of my bread and butter. Instead, I see it as an obstacle to my real work and more generally as a cost that modern practices of web development spread thinly over a mass of both web authors and web users who can’t do much about it.

If you tell me that my website shows a problem when viewed with one of these browsers, I will of course attend to it, but I don’t see it as properly my burden to go looking. I don’t plan to play along eagerly with this industry and its culture. See, not just prejudice but resentment!

Microsoft Edge

I can’t for the life of me think why anyone uses Microsoft Edge. Yes, it’s installed with Windows, but even the first version from the original Windows 10 looks like it wants to be some sort of poor man’s Google Chrome—which the latest versions actually are. Since the real thing is free to download, surely anyone who wants a browser to look like Google Chrome will just get Google Chrome.

On top of having little reason for existence, Microsoft Edge somehow strikes me as ruder software than Chrome ever seemed to be. This thing won’t even tell you which version it is without trying to phone home (for updates). There is apparently no way to tell it that you want a blank page when opening a new tab. What it insists on instead for the New Tab Page has some limited customisation, but only while you’re connected to the Internet. A manual clearing of browser data needs five clicks, and even then you have to work out (or remember) that what you’re to look for first is not a control for clearing the data but one for choosing which data to clear. Who is it at Microsoft who writes software to behave this way (or accepts it from Google)? How is it that web developers and authors indulge this?

Still, because Microsoft Edge is installed with Windows, I can’t just dismiss it from a first round of observations on my own intranet. Relative to my overall distaste for this browser, the overall presentation looks satisfactory for Microsoft Edge versions 20 (from the original Windows 10) through to 102 (from Windows 10 editions in late 2021).

Internet Explorer

This website will always look better and behave better in Internet Explorer. This has nothing to do with any assessment of Internet Explorer as a browser in comparison with others for better or worse. It’s just to state a fact, mostly arising from this website’s history. Internet Explorer is the browser that I targeted when I first coded the scripts back in 2007 and it is the browser that I have always used on my own intranet when I consult my own material. (The website you are now browsing is just an extract.) It is therefore the browser that I have the most experience with and through which I am most likely to discover faulty behaviour in ordinary use.

Through this website’s first decade, Internet Explorer was also by far the browser that was most used for visits to the site by real-world readers. It’s therefore also the one whose demand on my limited time for browser support always seemed greatest. Through that same decade, I also had a separate but very practical reason for using Internet Explorer: its inclusion with Windows, as if for free, made it a potential source of material for this site’s interest in Windows. Anything I notice about Internet Explorer through everyday exposure might usefully be studied and written up. Web design (as I see it) is a hopeless muddle in comparison with Windows programming (as I practise it) and is a huge distraction from what I regard as real work, but at least with Internet Explorer I have some slight prospect of a worthwhile write-up as compensation.

Versions

Even though some of the preceding reasoning no longer applies, this website likely never will be among the increasingly many that decline to show anything when viewed with Internet Explorer. There is a possibly fascinating study to be made of how Microsoft gained the overwhelming share of the browser market allegedly by hook or by crook only to lose it by neglecting to win the hearts and minds of web designers and authors.

You don’t have to look hard on the Internet to sense that Internet Explorer is widely detested by web designers. This website, however, could not sensibly reject Internet Explorer even if I agreed that it was the worst browser ever written. More than a few readers sometimes reach this site from old Windows versions. And why shouldn’t they? This website is almost entirely about Windows and many of its pages go into detail about the history of Windows. Inevitably, it gets visited while readers run old Windows versions—including a newly installed old version, perhaps in a virtual machine for convenience or safety while testing, with no browser other than the one that was bundled into this old version.

Server logs in 2021 show more page hits from Windows Vista, specifically, than from all versions of Google Android taken together, and more from Windows 7 than from all non-Windows operating systems combined. Not all these readers use old versions of the browser that came with these old versions of Windows, but more than a few do. To them, I can only say I’m sorry but I have abandoned support for Internet Explorer 6 (from Windows XP) and it will for a while be greatly reduced for Internet Explorer 7 (from Windows Vista).

Earlier versions than 7.0 are now impossible for the preferred user interface because the reworking in 2021 avoids FRAMESET and FRAME in favour of DIV but with fixed positioning. Internet Explorer 7 supports fixed positioning but is selective about rendering it. Notably, there is no fixed positioning for documents in quirks mode. Though this website used to demand nothing that wasn’t catered for acceptably in quirks mode, it does now.

The presentation you get from Internet Explorer 7 will depend on whether the page you choose happens to be new (or newly edited) or old. You may get bounced into essentially the same presentation that you’d get with scripts disabled. Ideally, this also will happen for earlier versions, but I cannot be bothered about checking. It may happen with later versions, too. I will try to keep an eye out, but not systematically. Checking every version of Internet Explorer in all their many combinations of compatibility modes is just too great a diversion.

The site’s overall presentation looks acceptable—to my eyes—in Internet Explorer 11, both natively and when the Emulation tab of its Developer Tools sets the Document mode back as far as 7 (and even 5 but at the price of looking as if the scripts don’t run).

In contrast to the grumbles that circulate on the Internet, my experience is that making a website present acceptably in Internet Explorer 11 and its emulations of older versions is not specially difficult. Of course, this website is not very ambitious on questions of web design. It isn’t stuffed with advertisements and third-party scripts, etc. Indeed, it has absolutely no such rubbish. Neither do I chase the latest fads in HTML, CSS or JavaScript. I keep instead to relatively basic functionality. That I then have little or no trouble must mean I’m doing it all wrong!