Accelerator Platform on Windows 7

When designing Accelerators for IE8, we had a number of scenarios in mind. Primarily, we looked at the all-too-common user pattern of copy-navigate-paste and decided we could save our users a lot of time and frustration by enabling some sort of contextual interaction between content and services. For example, the classic example is mapping—the user finds an address buried in a page, and instead of having to navigate to a mapping service, can receive the map inline via a preview window:

The Accelerator context menu showing a mapping preview

We were pretty satisfied with the solution we came up with for IE, but we stepped back for a moment and asked, “do users really care which program they find an address in? If I’m browsing a document in Microsoft Word and find an address, isn’t the mapping scenario just as relevant?”

We thought the answer was yes, so we created the Accelerator Platform for Windows 7. Once you explicitly call into the platform from your application, you have access to all the Accelerators that IE does, without having to worry about the underlying XML implementation. This allows you to focus your energy on providing a seamless and powerful experience for your users.

I’ve already written a development-focused whitepaper on the Platform, and MSDN has some great documentation on all the interfaces and methods, so I don’t plan on diving into technical details in this blog post. Instead, I’m just going to spend a little time going over some of the Platform’s capabilities and show off a working example.


One of the cool things about the Accelerator Platform is that we’ve essentially given you the same amount of power that IE has in interacting with Accelerators. Our APIs are flexible enough that you have a lot of latitude in customizing how your program interacts with the Platform.

There are three broad classes of functionality you’ll probably care about in working with the Platform:

  • Enumeration
  • Execution
  • Preview

Enumeration is pretty simple. All you really need to do is loop through all the Accelerators and present them however you’d like. IE, for example, uses a system of “categories” and “default Accelerators” (explained here) to help make the Accelerator-hunting process easier for end-users.

If anything, execution is even easier; it can be as simple as launching a new browser window (not even IE, necessarily) and passing in any necessary data.

Preview is a little bit more complicated, requiring your application to provide some UI for hosting a preview window. However, preview isn’t necessarily right for every application, so there’s no reason you have to include it, particularly if integrating the extra UI would be difficult.

Best Practices

Platforms exist as a scaffold on which people can build, so we deliberately made the Accelerator Platform very flexible. You can decide what kind of user experience will work best in your application and implement it. For example, if you wanted to enumerate all of a user’s Accelerators in a single menu, without any kind of structure, that would be quite possible to do. That said, it probably wouldn’t be the best of ideas.

While I’m certainly not going to tell you how to do things, one salient point I’d like to make is that many users familiar with Accelerators have come to expect certain design paradigms when interacting with them. So while your particular needs might require deviating from IE’s behavior (e.g. only enumerating “Search” Accelerators), I’d like to suggest falling back on IE’s model wherever possible, for consistency’s sake, if nothing else.


I figure a feature blog post isn’t complete without a demo, so I wanted to showcase something I wrote as a test case for the Platform:

Accelerators displaying within Microsoft Word

It’s a Word add-in that calls into the Platform for enumeration and execution. I ended up not adding preview, but there’s no reason you couldn’t do it in your own program. If you’re curious about how to implement something like the above, feel free to check out the whitepaper I mentioned earlier.

The Win7 Accelerator Platform is a powerful tool for bringing useful services closer to your users—I can’t wait to see the cool things you do with it!

Jon Seitel
Program Manager

Comments (48)

  1. Anon says:

    Instead of writing a plug-in that put accelerators in MS Word, why can’t you after 8 years still have not offered a plug-in for MS Word that will use the existing Smart-Tags system of recognizing and underlining addresses and map them? Why are Smart-Tags so under used? So, isn’t there an Ms Office plug-in gallery by the way, like there is for Firefox? Why is Office so poor in extensibility? Why? Where are the clever plug-ins? If Firefox can have them then or the more so Office should have them. Where are they? Why can’t I find them? If a competitor integrates mapping of address in an online word-processing  application, wouldn’t it appear that you had the feature years ago but you never used it? Why aren’t Smrat-Tags used anyway? There must be a reason. Usability? What? Lack of online services that hook to them and that work? If so, then it is your fault.

  2. _||_ says:

    No dearie, when MS tried to integrate it there was outrage among the tech punditry about MS tying Office to its own online services & about disruption/distraction in the business workflow. You’ll soon realize that MS is usually held to higher/different standards by techie-types than the rest of the industry.

    Anyway, you can choose to turn on SmartTags in Office ’03 setup, but I don’t know about ’07. MS developed context-sensitive menus long before everyone else did, but fear of MS lock-in kept it from being implemented throughout Windows. In many ways, the floating formatting toolbar that shows up when you select text in Word ’07 is like smarttags.

  3. Andrew says:

    From Japanese To English

    01 I block the font

    02 Select Translate


    04 its translated

    01 i block the second time on the same page

    02 I HAVE TO Select Translate


    04 its translated

    problem :

    01 There is no last selected accelerator (translate)

    02 There is no shortcut

    03 There is no last selected option on the accelerator (from japanese to english)


    normally, a nice way

    the button of accelerator is in the end of blocking text

    sometimes it goes to start of blocking text

  4. Ajoman says:


    Why is the "InPrivate Filtering" setting not saved when you close down IE.

    I think it’s important to respect the user’s choice and not let him/her switch it on every time. I did found the registry setting on MSDN, but still, please fix this with the next update/patch.

    MSDN article:

  5. Catto says:

    Hey Now,

    Accelerators are great!

    Thx 4 the info,


  6. Perley says:

    Great!  The example of mapping is in fact the best example I think you could use.  One minor "Why not?" however.  Where is the Send To GPS?  I will admit that this is actually best handled in the preview and not part of the Accelerator but just had to throw it out there.

    Great blog.  Thanks.

  7. Joe says:

    I understand that you are taking customer feedback as you plan IE 9.  I believe it would be helpful to open the discussion up to end users rather than developers, as we are the ones using your products on a daily basis.  Ultimately, I believe it will be very difficult to compete with a consumer oriented company like Google, if your entire focus is on the development community.

    As an aside, I would recommend iterating numerous designs and choosing one that looks and works better than the current one.  It’s not that IE8 is bad but there are too many spots for toolbars (I have the default one on the right side and a Window’s Live one below -hmm???) and Google Chrome just looks and feels SO much better.  Focus on the end user and I am confident that you can build a product the public (and developers) will LOVE!!!

  8. Dan says:

    Ajoman, you found the registry key (and that’s super-easy) so why complain about a decision that the Microsoft guys clearly deliberately made?  Set it and forget it: done.

  9. bill says:


    I agree with you. I want an option to keep enabled the Inprivate Filtering.

  10. boen_robot says:


    I believe you mean "send coordinates from GPS"?

    Both Google Maps and Live Maps support coordinates. Pass in some, and you’ll see where they lead. For example, here are the coordinates of my home town’s center:

    42.146 24.751

    Select that and map it. You should see the center of Europe/Bulgaria/Plovdiv.


    I feel a little offended by this, since I’m a developer… after all, developers are also end users… power users, yes, but still users. And their end user interests* often overlap with the ones from "real" end users – download manager (or at least a pause button), speed dial, new less error prone add-on arhitecture (that one is not said by "real" end users like that, but when they say "I don’t want my browser to crash", it almost always ends up they mean exactly that), etc.

    Is there a specific scenario you’re reffering to that you’d like to see realized in IE9? You know, like "I want *this* do happen when I do *that*", or "Change *this* to *that*"? Or you feel there’s "something" to be improved, but you’re not able to pinpoint it (yet)?

    *As for their developer interests (like SVG, DOM Events, etc.), those don’t impact the end user side of things, unless perhaps those include compatibility problems. Fortunatly, compatibility view has greatly helped with reducing such problems to a great minimum, and the new X-UA-Compatible header will still be here in the future to keep helping.

  11. Jason Haley says:

    Interesting Finds: May 8, 2009

  12. Mike says:


    Microsoft has does not listen particularly listen to developers. (css corners, svg, canvas etc)

    Why do you think they would listen to users.

    Sadly the only way to get Microsoft to change its ways is through litigation.

  13. fien says:

    @Robear Dyer

    This key is not documented so it should not be used. Microsoft IE8 team, please tell us if is safe modifiying this key in order to enable the Inprivate Filtering.

  14. says:


    the BEST name for Microsoft Kumo ISN’T "Kumo":



  15. abo man says:

    I have tried the accelerator platform and i liked it.

  16. Jaye says:

    fien… no one from microsoft has said that the key isn’t safe, and many people are using it successfully.  You can just remove it if it causes a problem, but it won’t…

    You need to think hard about why ms would not just make this a checkbox inside ie, and once you realize why not, you’ll understand why no one from ms is ever gunna talk about that regkey.

  17. Stan says:

    @Mike: Troll elsewhere, noob.  When *your* browser has full CSS2.1 support, come on back and we’ll talk.

  18. Mitch says:

    @Anon: "Why are Smart-Tags so under used" – because they were a complete flop, useless and drove end users nuts.

    @Jon Seitel – I certainly hope that these accelerator links open in ***MY DEFAULT BROWSER*** anything else is ***COMPLETELY UNACCEPTABLE!***

    Why also is the "more accelerators" full of the same ones that are in the main menu? – makes no sense and wastes precious real-estate.

    Finally IIRC, didn’t accelerators get the URL of the current page? if so, what do they get in Word or Excel or AutoCAD etc.

  19. Yolanda says:

    @Stan: re:"When *your* browser has full CSS2.1 support, come on back and we’ll talk."

    When *IE* has ___FULL___ CSS2.1 support come on back and we’ll talk too.  IE is certainly very close to full 2.1 support but lets put some perspective on this.

    Its only just now (2009) that IE reached this mark… IE still doesn’t support the opacity property EVEN THOUGH it has the technology to do so. Ditto for W3C event models. No native SVG support, no animated PNG support, no PNG favicon support, no rounded corner support, a UI (that outside of new features) hasn’t been updated in over a decade (even though it needed it desperately)

    Considering that most IE users are still stuck on IE7 or even IE6… the progress is too little, too late.

    The applications I’m building today will NOT support IE6 or IE7 out of the box.  There is no way I can regain the wasted time and money needed to support those horrible browsers.

    If it works in Firefox, Chrome, Safari, & Opera… then ship it! If it doesn’t work in IE, then IE is to blame – every other browser works just fine.

  20. Stan says:

    @Mitch: I’m amused that you’re shouting "completely unacceptable" about the theoretical behavior of a piece of demo code which isn’t actually shipping or available anywhere.  Are you worried that his screenshot might not work like you want???

    @Yolanda: The "whine, whine, whine, change the subject" is pretty common for the trolls here.  Thanks for identifying yourself.

  21. blair says:

    @Stan Mitch has a point about what browser opens.  If Google Chrome is my default browser then Google Chrome should be the application launched when I click "Map with Google Maps".  If it isn’t then thats a bug with the implementation because it goes against my user preferences in Windows.

    As for whiners and trolls you need to remember that bad publicity follows the iceberg principal. "For every 1 person that whines about an issue – you can almost guarantee that there are another 10 that feel the same way"

    Considering that this is a developer blog you can expect that number to be much, much higher since most end users have no idea how to even contact Microsoft.

  22. Stan says:

    @Blair: You’re completely missing the point.  Jon is describing a demo application he wrote which you cannot download and never get to use.  So, it’s completely irrelevant what his application actually does.

    It would have been correct to note that the snippet shown on MSDN would launch IE if you compiled it, but for a very good reason: there is NO standard way to tell the shell to launch a browser and cause it to do a HTTP POST action against a target URL.  

    In fact, IE is the ONLY browser to offer any mechanism at all (COM) for this.  All browsers can support accelerators based on GET (since a GET is simply a URL which you can pass on the command line) but you’d need to do code changes in Chrome, Opera, Safari, and Firefox to support POST-based accelerators.

  23. Buzby says:


    At least the complainers are making specific complaints. Do you have *anything* of value to add other than insults?

  24. Mike says:


    I have a number of different browsers and will certainly enjoy the much better support for css2.1 that IE8 has.

    However why not check out

    This gives an indication of what developers will be able to do with fast javascript engines, svg and canvas etc.

    Try the experiments on Opera, Safari, Chrome or Firefox and they will mostly work.

    Good luck with IE8!

    Yes they could have been written in flash or silverlight however I think most developers look forward to an open standards based web. It is just a shame Microsoft does not share this vision.

  25. TheBoom says:

    Stan, seriously, does anyone over the age 12 use "noob" anymore? It was "mass mediaized" years ago.

  26. EAS says:

    Please please get these accelerators linked into all of the Windows Live Essentials programs!  

  27. hAl says:

    I would expect accellerators based on browser opening to open using the same browser as they were opened from.

  28. Jon Seitel [MSFT] says:

    @Mitch (and others):

    The developer has free reign to execute the Accelerators in whatever browser he or she chooses.  When I was coding my example, I chose to launch them in IE, but in theory, any browser should be compatible.

  29. anonymuos says:

    So why isn’t the Accelerator platform installed on Vista/XP with IE8? Marketing reasons?

  30. Joe says:


    I meant no offence and I realize that developers are end users and advanced ones at that.  Perhaps, it would have been better to phrase it as the team should request feedback from the broad community including developers and less technical end users.

    In terms of functionallity, I really can’t address any specifics.  Actually, the ones you mention are great and frankly ones I would have never really thought of since I pretty much exclusively use IE8 (don’t ask – I invested in MSFT so I am incredibly hopeful that they can create competitive products…but… anyhow, that is another subject).

    To tell you the truth, there isn’t really any additional features that I really craving, although I love the way Chrome integrates search in the address bar(I know MSFT can’t do this because of regulation on IE so ’nuff said on that).  My main complaints are (1) the browser should NEVER crash and IE does on an incredibly frequent basis; and (2) please, redesign the top 2" of the screen – I hate the ugly shiny blue buttons and the whole look of the browser.  Maybe, I am in the minority but the look and feel just isn’t what it should be.

  31. Dan says:

    Joe, I’m not sure where you’re getting your info, but search has been integrated into IE’s address bar since IE4 or so.  

    As for crashes, almost all that have been posted on the blog are determined to be buggy plugins; certainly all of the crashes I’ve seen go away when I disable addons.  

    I’m sure the IE team gets plenty of feature requests and feedback from their hundreds of millions of users.

  32. hAl says:


    Try typing this in the adress bar:

    ? admuncher

    You should get search results straight away.

    It even works without the questionmark.

    Just type in the adress bar this:


    and you should get a resultspage with adblock searches.  

  33. Tim says:

    Lets just recap all the chatter then.

    1.) It is BEST PRACTICE to open all links in the users PREFERRED BROWSER – doing otherwise is an insult.

    2.) Since POST actions are meant to do actions/update data… and getting a search result or map is a GET activity… there is no issue with which browser is opened.


  34. Stan says:

    @Tim: just because you say something certainly doesn’t make it so.  

    Support for HTTP POST is a part of the accelerator platform, and hence without code changes, no other browser can support the accelerators platform. But, as I’ve said repeatedly, the entire dispute is academic because: 1> You don’t have Jon’s demo program, 2> I don’t have Jon’s demo program, 3> No one but Jon has Jon’s demo program.

  35. Vince says:

    @Stan Dude you are out to lunch on this one!

    Accelerators do all kinds of GET based links (which I would suggest would be the recomended choice).

    As for what browser opens – yes indeed it should be the users default.  If I clicked "print" in any application and it always defaulted to my non-default printer I would get VERY annoyed!

    And most importantly *ANY* browser can support an inbound URL link which is exactly what the Accelerator platform would produce when an accelerator is clicked on in another application.

    Since you fail to see the underlying issue here at all I can only presume that your default browser is IE and you haven’t upgraded to Firefox, Chrome, Opera or Safari yet. 😉

  36. Stan says:

    Vince, your inability to read API documentation, and ignorance of the difference between HTTP POST and GET just makes you look silly.  Please do some research before you post.  

  37. Klogg says:

    Just wanted to shed some light on a fix for developers that want to avoid Accelerator overload on HTML Elements that do not want, need nor warrent the Accelerator feature.

    IE supports a proprietary attribute:

    unselectable="on|off" (default is off when attribute not specified)

    So if you have a menu on your page where selecting text would be redundant and completely undesired you can use this.


     <li unselectable="on">Home</li>

     <li unselectable="on">Products</li>

     <li unselectable="on">Services</li>

     <li unselectable="on">About</li>

     <li unselectable="on">Contact Us</li>


    unfortunately nested elements do not "inherit" this behavior from their parents so it must be applied to every single HTML Element that needs to be unselectable. 🙁

    for the more advanced devs I use this.

    /* CSS Class */






    and then hook in a jQuery document.ready() event handler that only targets IE and then iterate over the set of elements returned matching the (".unselectable") selector adding the unselectable="on" attribute.

    This fixes IE6, IE7 and IE8… plus ensures that the goofy Accelerator icon doesn’t appear when a user accidentally double-clicks or causes an uber-minor mouse drag near text that shouldn’t be selectable in the first place.

    Hopefully in IE9, IE will start supporting the CSS properties that developers care about!

  38. Klogg says:

    Just saw Stan’s comments above. Not sure what your problem is buddy but Vince didn’t make any mistakes. HTTP GET is fully supported by the Accelerator platform thing and it is right there in the documentation.

    <os:execute method="get"

       action="{documentUrl}&title={documentTitle?}" />

    Therefore Stan:

    Stan, YOUR inability to read API documentation, and ignorance of the fact that accelerators support both HTTP POST and GET just makes you look silly.  Please do some research before you post.

  39. Stan says:

    @Klogg: sadly there’s no literacy test to post here.  There’s no question about whether the Accelerator platform supports GET.  The point is that it also supports POST, which means that there are types of accelerators (specifically, those that require POST) which won’t work in any other browser.

    Although, to reiterate, the entire dispute is academic because: 1> You don’t have Jon’s demo program, 2> I don’t have Jon’s demo program, 3> No one but Jon has Jon’s demo program.

  40. Xaviar says:

    @Stan there doesn’t need to be a literacy test here because only you would fail it.  No one ever claimed it was a GET only platform.  However since GET is part of it and GET simply requests a URL and GET is what most accellerators use because it is the easiest and most meaningful of the two options when running some query of some kind – the way GET is handled is of very high priority.

    Since we’ve established that the next thing to consider is what application handles that request?  Since Windows is the platform in question here, Windows should be the broker grabbing that request then forwarding it to the applicable application.

    Furthermore since the user selects which browser they want as the default (since rarely is only 1 installed) Windows then dispatches the request to the user-selected program.

    Now if you want to drag it out more – it becomes a matter of ethics.  Thou shalt not override the users selected option.. EVER! unless there is no ability to honor it.  If you must sent POST requests and the user can’t/doesn’t set their preferred browser to handle it, then launching IE instead is acceptable (Mozilla/Webkit devs take note)

    After reading your countless, pointless trolling "its academic" "you dont have jons demo" "wah wah wah" – give it up!

    Accept the fact that other developers and end users are going to poke holes in posts here and point out flaws in the designs.

    Maybe Jon hadn’t looked to deep into this and forgot that a growing majority of end users specifically choose another browser over IE and thus their default browser selection should be honored.

    More importantly there are many developers that swoop in on this blog for a tidbit of info (eg. Google.. Accelerator…Here) and are just looking for a code snippet or a quick Hello World on how to get started.  For them it is just as important to know "hey! there are some things you’ll want to consider!" which is what the comments on this blog are all about.

    Was IE7+ a dumb idea? Of course it was but without letting the community vet it out the IE team would likely have let it go RTM like that.  Ditto for default rendering in Standards mode… when the team first said no they were not going to do it there was uproar from developers (with good reason) that helped convince them to take another approach.

    And finally to return back to the case in point.

    Non-data altering page requests should be done with GET requests according to the specs and the dev community at large…. and any application that launches a web browser as the result of firing an event to launch a URL should most definately ensure they link to the users default browser.  Doing otherwise is very bad programming practice.

  41. Ken says:

    Xaviar, the bulk of your silly rant aside, I’d suggest you use an accelerator to look up the definition of the word "majority."  

  42. Harvey says:

    @Xaviar,Ken — I think that "majority" might be a bit overzelous but that certainly describes the trend.  Since you can’t uninstall IE when you install Firefox or Chrome instead o IE you end up with multiple browsers.

    Corporate IT still has a fairly big lockdown on IE as the only browser but thats changing fast as users get ticked that they are stuck on IE6 and are getting locked out of access to modern applications.

    I fall into the category or users that installs a better browser as Task 1 on a new OS install.  We could argue which browser is best till we are blue in the face but I think we can all agree it isn’t the little blue ‘e’.

  43. camping says:

    I think Harvey i right. I also have firefox and chrome instead of ie.

  44. Henry says:

    Harvey, no, I wouldn’t agree with you.  

    The only "trend" I see is that IE is the most commonly used browser every year.

  45. Omar says:

    @Henry yes you are right IE has the biggest market share due to the windows dominance on the desktop and the fact it is installed by default.

    However if you follow the stats, every day more and more users give up on IE and switch to something better.

    See here:

    That blue line that is descending every day is IE.

    The Orange, Green, and Cyan lines are some of the other windows browsers that steal market share from IE every day.

    The trend is pretty plain and clear. IE is dying because it can’t compete with the usability of the better browsers out there.

  46. Henry says:

    Omar, in case you weren’t aware, charts without attribution aren’t very credible.

    That said, the one you’ve chosen claims IE has twice the share of all of its competitors combined.  I believe that constitutes a "majority" by any definition.