A Big Upgrade for the Bookmarklet

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.)

Already considering ditching Pocket for this (at least for the time being). Thanks, Brian!

Nat A Lee D.

Thanks for the updates. Will this work on any mobile browsers for phones or tablets?

Brian Miller

Can’t say that I’ve officially tested it (shamefully!). I forgot mobile, though I have no reason to believe it won’t. It is fairly straightforward JS (linted), HTML, CSS for the app itself and TinCanJS should be functional on them as well. (I don’t assume anything works on a Windows platform without testing though.)