The xAPI reporting bookmarklet has been around a long time, at least in terms of a now over one year old specification’s life. It was originally just a prototype, a simple way to show a pre-configured Agent could send a Statement about a readily available Activity— a web page. And it worked.

But after using it for the better part of a year, I realized just how much I used it, and how much more I could be tracking. I also realized just how much better the core functionality and user experience could be. So, I rewrote it (as I’m prone to do, something about asking for forgiveness and such).

Originally my goal was just to make it use TinCanJS to support a wider range of browsers and to make sure we were able to keep it up to date as new versions of the specification landed. That turned out to be a fairly substantial rewrite. One that suggested a little more effort would go a long way in making it work the way I would want, rather than just work.

The list of improvements:

  • Got rid of the modal and automatic sending of a single statement (I hate modals). This is a huge user experience improvement that enabled the other improvements.
  • Added the ability to select a verb that better matches the action of the user. I often do something besides just read a web page. I also may bookmark it, comment on it, send a tweet about it, etc. I wanted to capture statements indicating those things as well.
  • Added the ability to include tags about a link. I read a pretty large array of pages online about things such as programming, finance, sports, history, etc. Now the statements sent for a given page can include associated tags, and my own personal tag cloud is stored right there in the LRS’ document store. As part of this I set up a profile on The Registry for ‘tags’ that anyone can use.
  • Added the ability to rate a page. Not so much to indicate the quality of the page, but more to rate how likely I am to come back to it again or to suggest it to a friend or coworker.
  • Since the statement structure is now more defined, I went ahead and started a profile with a Recipe on The Registry for bookmarklets, too.
  • Added a human readable statement preview before send.
  • Added the ability to use the bookmarklet from secured pages (https urls).
  • And naturally, it supports any version of the specification through use of TinCanJS.
  • Internet Explorer versions 10 and above are now supported. Firefox, Chrome, Safari, etc. were already all supported (and still are). (IE8-9 can have support, but because of their handling of http vs. https a user needs a different bookmarklet for each so we’ve left that as an open issue.)

You should try out the new bookmarklet and let me know how you like it!

Brian Miller is the Director of Engineering and is also the most pedantic person at the office, which is saying something. That skill makes him great at ensuring our products support the standards, which is precisely what he spends his days doing.