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:
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.
Functionality
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.
Example
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:
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
Anonymous
May 07, 2009
PingBack from http://www.anith.com/?p=35866Anonymous
May 07, 2009
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.Anonymous
May 07, 2009
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.Anonymous
May 07, 2009
From Japanese To English 01 I block the font 02 Select Translate 03 SELECT FROM JAPANESE TO ENGLISH 04 its translated 01 i block the second time on the same page 02 I HAVE TO Select Translate 03 I STILL HAVE SELECT FROM JAPANESE TO ENGLISH 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) inconsistency normally, a nice way the button of accelerator is in the end of blocking text sometimes it goes to start of blocking textAnonymous
May 07, 2009
offtopic 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: http://blogs.msdn.com/dmart/archive/2009/04/22/enable-inprivate-filtering-by-default.aspxAnonymous
May 07, 2009
Hey Now, Accelerators are great! Thx 4 the info, CattoAnonymous
May 07, 2009
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.Anonymous
May 07, 2009
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!!!Anonymous
May 08, 2009
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.Anonymous
May 08, 2009
@Ajoman I agree with you. I want an option to keep enabled the Inprivate Filtering.Anonymous
May 08, 2009
The comment has been removedAnonymous
May 08, 2009
Interesting Finds: May 8, 2009Anonymous
May 08, 2009
@Joe 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.Anonymous
May 08, 2009
@ajoman: See http://www.winhelponline.com/blog/how-to-start-internet-explorer-8-in-inprivate-mode-by-default/ and http://www.winhelponline.com/blog/start-ie8-inprivate-using-start-menu-internet-icon/Anonymous
May 08, 2009
@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.Anonymous
May 08, 2009
the BEST name for Microsoft Kumo ISN'T "Kumo":
http://newgoos.blogspot.com/2009/05/best-name-for-kumo-isnt-kumo-but.html
Anonymous
May 08, 2009
I have tried the accelerator platform and i liked it.Anonymous
May 08, 2009
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.Anonymous
May 08, 2009
@Mike: Troll elsewhere, noob. When your browser has full CSS2.1 support, come on back and we'll talk.Anonymous
May 08, 2009
The comment has been removedAnonymous
May 08, 2009
The comment has been removedAnonymous
May 08, 2009
@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.Anonymous
May 08, 2009
@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.Anonymous
May 08, 2009
The comment has been removedAnonymous
May 08, 2009
@Stan: At least the complainers are making specific complaints. Do you have anything of value to add other than insults?Anonymous
May 08, 2009
The comment has been removedAnonymous
May 08, 2009
Stan, seriously, does anyone over the age 12 use "noob" anymore? It was "mass mediaized" years ago.Anonymous
May 08, 2009
Please please get these accelerators linked into all of the Windows Live Essentials programs!Anonymous
May 08, 2009
I would expect accellerators based on browser opening to open using the same browser as they were opened from.Anonymous
May 08, 2009
The comment has been removedAnonymous
May 08, 2009
So why isn't the Accelerator platform installed on Vista/XP with IE8? Marketing reasons?Anonymous
May 08, 2009
@boen_robot, 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.Anonymous
May 08, 2009
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.Anonymous
May 08, 2009
@joe 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: Adblock and you should get a resultspage with adblock searches.Anonymous
May 09, 2009
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. timAnonymous
May 09, 2009
@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.Anonymous
May 12, 2009
@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. ;-)Anonymous
May 12, 2009
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.Anonymous
May 14, 2009
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. <ul> <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> </ul> 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 */ .unselectable{ user-select:none; -moz-user-select:none; -khtml-user-select:none; } 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!Anonymous
May 14, 2009
The comment has been removedAnonymous
May 14, 2009
@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.Anonymous
May 19, 2009
The comment has been removedAnonymous
May 19, 2009
Xaviar, the bulk of your silly rant aside, I'd suggest you use an accelerator to look up the definition of the word "majority."Anonymous
May 20, 2009
@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'.Anonymous
May 20, 2009
I think Harvey i right. I also have firefox and chrome instead of ie.Anonymous
May 20, 2009
Harvey, no, I wouldn't agree with you. The only "trend" I see is that IE is the most commonly used browser every year.Anonymous
May 21, 2009
The comment has been removedAnonymous
May 21, 2009
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.