Typing with Speed and Accuracy in IE10

November 8th, 2011

Typing quickly and accurately is a critical part of the user experience for any piece of
software. When using a device without a physical keyboard, providing a great text input
experience is even more important. Windows 8 provides several capabilities to make text
input great on any device, and spellchecking is one of them.

Spellchecking in Windows 8 allows customers to identify misspelled words while
they are entering text, have commonly misspelled words fixed automatically, and take
corrective action on others. In Windows 8, spellchecking support is available to applications
across the entire operating system, including IE10. Of course, spellchecking will also be
available as an IE10 browser feature on all supported versions of Windows (including
Windows 7).


IE10 has the first browser-based implementation of auto-correct.

In some cases, a misspelled word is so common that it is better to just correct the
word immediately, rather than wait for you to review the error later In the rare case that auto-correct changes something that you didn’t want changed,
you can undo the change via CTRL+Z (Undo) using the keyboard, or bring up the
auto-correction context menu using the mouse. In addition to using the mouse, the
auto-correction menu can be activated via the keyboard by moving the insertion point
inside of the word and pressing SHIFT+F10 (that key combo works to trigger any context
menu). From the auto-correction menu you can also prevent the word from being
auto-corrected in the future.

You can try out
auto-correct in my test drive demo
; it includes a short list of some of the
common misspelled words that will be auto-corrected.

Word Identification and Corrective Actions Menu

No spellchecking experience would be complete without the red squiggles
you’re familiar with from your favorite Office programs.

By default, as you enter text into any HTML textarea element (a multi-line input
box) or any region of editable HTML content, the spellchecking engine will be used
to check the last entered word. The word is checked against a dictionary associated
with the current keyboard input language. If that word is misspelled or repeated
it will be identified as a potential error using the familiar red squiggly underline.
The identification of potential misspelled or repeated words is done in the background
so that it does not slow your text entry.

The corrective actions menu will offer the most likely
replacements for the identified word. You can replace the identified word with the
suggested word in one step by selecting it from this menu. In addition you may choose

  • Add to dictionary. Your Windows user account has a built-in custom dictionary (which
    is initially empty). You may add frequently used words to this dictionary (in my
    case, I always need to add my last name).
    In Windows 8 this custom dictionary will be roamed
    to any other Windows
    8 machine that you use via the cloud.
  • Ignore. The word will no longer be identified as a potentially misspelled
    word on this page. After you navigate away from the current page, the list of ignored
    words is cleared, and will again be flagged as a potential error.

Spellchecking in Your Language

Each of these spellchecking facilities (auto-correction, and word identification
with corrective action menus), use the spellchecking dictionaries installed on your
local PC. In the Windows
Developer Preview
, all of the dictionaries for all the supported languages
are pre-installed. Many of the languages also include different language reform
variants that you can toggle between in the re-designed Language control panel.
All spellchecking options can be managed in the language control panel in Windows
8. On Windows 7, the spellchecking management experience for IE10 will be provided
by the browser instead; I’ll describe this in more detail in a future post.

Internet Explorer 10 supports spellchecking in many common languages.
View a list of supported
spellchecking dictionaries and language/locales, including language reform variants.

There are sometimes needs for highly specialized spellchecking dictionaries, for example,
in specific industries with their own vernacular or for languages not commonly
spoken such as Latin. To support these scenarios, the Windows 8 spellchecking facility supports 3rd party spellchecking engines. When installed, IE10 and all other Windows
components will use the installed 3rd party spellchecking engine.

Web Developer Options

As alluded to earlier, textarea and contenteditable elements are spellchecked
by default; single-line input boxes (input type=text) are not checked by default
since many sites use them for username fields or other purposes not suitable for
spellchecking. We tried to pick good defaults, but if your Web site needs to change
any of these defaults, it can. The ‘spellcheck’ attribute defined by HTML5 allows
you as a developer to override the default spellchecking behavior for an element
and all of its children.

By adding the spellcheck=false attribute value on any element, you disable
spellchecking for all textarea, contenteditable, and input type=text
elements that are children of the given element (including the element itself).
Setting spellcheck=true enables spellchecking in the same scenario, and can
also be used to override the spellchecking setting from a parent in the element
tree. For example, if you want spellchecking disabled for all textarea elements
on a page, with one exception, you can add the spellcheck=false attribute
value to the HTML element, and then add a spellcheck=true attribute to the
textarea element that is the exception.

Try out this capability
using the spellchecking IE10 test drive demo

The spellcheck attribute gives Web developers the flexibility to tailor the experience to
the needs of their users.

Spellchecking and Multiple Languages

We know a lot of our customers speak and write in more than one language. It’s important
that the spellchecking engine use the right language when you are entering text,
and that it is easy to switch between languages when necessary.

In IE10, the selection of the spellchecking language is
determined by evaluating the following sources (in priority order):

  • The HTML lang attribute. The Web developer knows the design and intent of
    the site and can control which parts of the page are associated with which language
    (in multi-language scenarios).
  • The keyboard input language. Windows 8 makes it easy for users to specify the languages
    they are interested in and to switch between them on the fly. To switch the language
    used by the spellchecking engine while entering text, you simply change the input
    language. With two or more languages configured (or two or more keyboard layouts)
    simply press the Windows key + spacebar. On the touch keyboard, there is a key to
    toggle the input language as well.
  • Window’s current display language (the language you are using to run Windows).

Spellchecking is an IE10 feature; while it is seamlessly integrated into Windows
8, we want to ensure that all users of IE10 benefit from this feature, including
our users of IE10 on Windows 7. I’ll share more about the IE10 on Windows 7 experience
in a future post.

Spellchecking in the browser will improve the accuracy and speed at which you input text
on the Web. I’ve really enjoyed having it available and I know that the people with whom I
correspond online also appreciate it!

—Travis Leithead, Program Manager, Internet Explorer