Spell Checking Reduces Undo Capacity

As someone who was taught touch-typing at school and who can spell English capably well, it has never been my habit to rely on any sort of spell checker in any sort of software. However, with a new computer that seemed much faster with its new software than I had ever experienced in any previous upgrade, I thought I might as well leave the “Check spelling as you type” option enabled in all the new software and see if it did not bring some benefit. I was indeed glad to have it catch the occasional typing error that escaped my own real-time correction. I was also relieved that I could easily ignore the spell-checker’s alerts about technical terms and not have to maintain a custom dictionary. I still have background spell checking enabled in other software—but I disabled it very soon in Expression Web.

What I couldn’t tolerate was something I hadn’t expected and didn’t notice immediately. It’s possibly not particular to Expression Web. My experience with having software “check spelling as you type” is not sufficiently broad to say, but a few quick tests in other software confirm that the problem is much worse in Expression Web than in, say, Word from Office 2007. Though it makes spell checking unusable for me, I mean to count it more as a quirk than a bug. It’s something that Microsoft ought attend to much better.

To see the problem, start Expression Web with a blank page and enter

This is a test sentence.

Do not cut and paste. Type each letter. If you make a mistake, use the Undo facility to get back to the blank page, and then re-type the lot. The idea is to create a well-defined test case by entering an uninterrupted sequence of forward-moving keystrokes, starting from a fresh page. With this done, you might expect that you can undo the sequence as one step, e.g., with one press of Ctrl-Z, or that the drop-down box for the Undo button shows just one Typing operation that can be undone. This is indeed the result if you perform this simple experiment with background spell-checking disabled, but if you do it with “Check spelling as you type” enabled and working, you get three Typing operations that have to be undone. (You will know that the spell checker is working because a red squiggle appears briefly under the “i” of “is”.)

Expression Web’s spell checker can cause the Undo buffers to be used up even as frequently as letter by letter. To see, place the caret immediately before “test” and then type “simple” and a space. Expression Web charges you seven entries in the Undo buffers, presumably because the “stest”, “sitest”, “simtest”, etc, that you create while typing “simple” each attract the attention of the spell checker and are each counted as one insertion. All you have done is write one short sentence and make a one-word insertion, yet it will take you 10 steps to undo.

Does the difference matter? Perhaps not by itself. But people tend to write quite a lot more than a five-word test sentence before thinking that they’ve gone down the wrong path and might like to revert to an earlier text from which to rethink their phrasing. The Undo buffers are not inexhaustible. The capacity seems to be for 30 entries, but is perhaps configurable. Anyone writing anything even a little complicated in Expression Web will find that what they can undo is significantly reduced by background spell-checking. Indeed, I say it’s reduced so far as to force a choice: have a useful Undo facility or do without the spell checker. That I have chosen the latter was easy enough since I never valued the spell checker to begin with, but for many if not most Expression Web users, disabling the spell checker is simply not a practical option. How many have been cursing to themselves that they can often undo only one or two sentences?

Note that if you repeat this experiment using Word, writing the test sentence and then inserting one word each count as only one step to undo. Moreover, Word doesn’t penalise if you make a mistake and correct with backspaces. Expression Web may not actually be defective for its interaction between the spell checker and Undo, but it certainly is deficient.

Expression Web 3

Although this page was written for the original Expression Web, nothing needs to be changed for Expression Web 3. The silliness described here persists. It’s just no longer excusable as a relic from a long-forgotten first version (even granting that Expression Web is entitled to this excuse). That Microsoft’s programmers and testers and the many writers who support Expression Web haven’t done such simple experiments with this basic functionality is surely not credible. Yet the alternative is arguably worse, i.e., that they know of this silliness with the basics but disregard it.