Fragmentions
Ages ago I added support on my website for fragmentions.
Wait… What is that?
Fragmention is a portmanteau word made up of fragment and mention (or even Webmention), but in more technical terms, it’s a simple way of creating a URL that not only targets a particular page on the internet, but allows you to target a specific sub-section of that page whether it’s a photo, paragraph, a few words, or even specific HTML elements like <div>
or <span>
on such a page. In short, it’s like a permalink to content within a web page instead of just the page itself.
A Fragmention Example
Back in December Aaron Davis had made a quote card for one of his posts that included a quote from one of my posts. While I don’t think he pinged (or webmentioned) it within his own post, I ran across it in his Twitter feed and he cross-posted it to his Flickr account where he credited where the underlying photo and quote came from along with their relevant URLs.
Fragmentions could have not only let him link to the source page of the quote, it would have let him directly target the section or the paragraph where the quote originated or–even more directly–the actual line of the quote.
Here’s the fragmention URL that would have allowed him to do that: http://boffosocko.com/2017/10/27/reply-to-laying-the-standards-for-a-blogging-renaissance-by-aaron-davis/#I%E2%80%99m%20not%20looking
Go ahead and click on it (or the photo) to see the fragmention in action.
What’s happening?
Let’s compare the two URLs:
1. http://boffosocko.com/2017/10/27/reply-to-laying-the-standards-for-a-blogging-renaissance-by-aaron-davis/
2. http://boffosocko.com/2017/10/27/reply-to-laying-the-standards-for-a-blogging-renaissance-by-aaron-davis/#I%E2%80%99m%20not%20looking
They both obviously point to the same specific page, and their beginnings are identical. The second one has a # followed by the words “I’m not looking” with some code for blank spaces and an apostrophe. Clicking on the fragmention URL will take you to the root page which then triggers a snippet of JavaScript on my site that causes the closest container with the text following the hash to be highlighted in a bright yellow color. The browser also automatically scrolls down to the location of the highlight.
Note: rather than the numbers and percent symbols, one could also frequently use the “+” to stand in for white spaces like so: http://boffosocko.com/2017/10/27/reply-to-laying-the-standards-for-a-blogging-renaissance-by-aaron-davis/#not+looking+for+just This makes the URL a bit more human readable. You’ll also notice I took out the code for the apostrophe by omitting the word “I’m” and adding another word or two, but I still get the same highlight result.
This can be a very useful thing, particularly on pages with huge amounts of text. I use it quite often in my own posts to direct people to particular sub-parts of my website to better highlight the pieces I think they’ll find useful.
It can be even more useful for academics and researchers who want to highlight or even bookmark specific passages of text online. Those with experience on the Medium.com platform will also notice how useful highlighting can be, but having a specific permalink structure for it goes a step further.
I will note however, that it’s been rare, if ever, that anyone besides myself has used this functionality on my site. Why? We’ll look at that in just a moment.
Extending fragmentions for easier usability.
Recently as a result of multiple conversations with Aaron Davis (on and between our websites via webmention with syndication to Twitter), I’ve been thinking more about notes, highlights, and annotations on the web. He wrote
which discusses “Page Bookmarks” which are an interesting way of manually adding anchors on web pages to allow for targeting specific portions of web pages. This can make it easy for the user to click on links on a page to let them scroll up and down specific pages. Sadly, these are very painful to create and use both for a site owner and even more so for the outside public which has absolutely no control over them whatsoever.His post reminded me immediately of fragmentions. It also reminded me that there was a second bit of user interface related to fragmentions that I’d always meant to also add to my site, but somehow never got around to connecting: a “fragmentioner” to make it more obvious that you could use fragmentions on my site.
In short, how could a user know that my website even supports fragmentions? How could I make it easier for them to create a fragmention from my site to share out with others? Fortunately for me, our IndieWeb friend Kartik Prabhu had already wired up the details for his own personal website and released the code and some pointers for others who were interested in setting it up themselves. It’s freely available on Github and includes some reasonable details for installation.
So with a small bit of tweaking and one or two refinements, I got the code up and running and voilà! I now have a natural UI for highlighting things.
How?
When a user naturally selects a portion of my page with their mouse–the way they might if they were going to cut and paste the text, a simple interface pops up with instructions to click it for a link. Kartik’s JavaScript automatically converts the highlight into the proper format and changes the page’s URL to include the appropriate fragmention URL for that snippet of the page. A cut and paste allows the reader to put that highlighted piece’s URL anywhere she likes.
The future
What else would be nice?
I can’t help but think that it would be fantastic if the WordPress Fragmention plugin added the UI piece for highlight and sharing text via an automatically generated link.
Perhaps in the future one could allow a highlight and click interaction not only get the link, but to get a copy of both the highlighted text and the link to the URL. I’ve seen this behavior on some very socially savvy news websites. This would certainly make a common practice of cutting and pasting content much easier to do while also cleverly including a reference link.
The tough part of this functionality is that it’s only available on websites that specifically enable it. While not too difficult, it would be far nicer to have native browser support for both fragmention creation and use. This would mean that I don’t need to include the JavaScript on my website to do the scrolling or highlighting and I wouldn’t need any JavaScript on my site to enable the highlighting to provide the specific code for the custom URL. How nice would it be if this were an open web standard and supported by major browsers without the need for work at the website level?
Medium-like highlighting and comments suddenly become a little easier for websites to support. With some additional code, it’s only a hop, skip, and a jump to dovetail this fragmention functionality with the W3C Webmentions spec to allow inline marginalia on posts. One can create a fragmention targeting text on a website and write a reply to it. With some UI built out, by sending a webmention to the site, it could pick up the comment and display it as a marginal note at that particular spot instead of as a traditional comment below the post where it might otherwise loose the context of being associated at the related point in the main text. In fact our friend Kartik Prabhu has done just this on his website. Here’s an example of it in his post announcing the feature.
You’ll notice that small quotation bubbles appear at various points in the text indicating marginalia. By clicking on them, the bubble turns green and the page expands to show the comment at that location. One could easily imagine CSS that allows the marginalia to actually display in the margin of the page for wider screens.
How could you imagine using fragmentions? What would you do with them? Feel free to add your thoughts below or own your site and send me a webmention.
TIL that RDF is “then”, “silo”, and “metadata” . There are the W3C #WebAnnotation specs to do all that.. not to mention that it plays well alongside other W3C stuff.. #ActivityPub eg https://t.co/aP1EcObXpR
A potential browser-based marginalia tool gets me very excited! In the meantime, I tried your instructions with highlighting text on your post to get the link icon. However, instead of getting the link icon, I got the icons from Hypothesis’ annotation tool. (screenshot).
One might think that the Hypothesis plug-in is doing some overriding here, but I don’t even have it installed in this browser. Very curious.
Thanks for the notice Matt. I haven’t checked it in all browsers yet, so perhaps it’s a browser specific issue? I am seeing some issues in Firefox. It’s also possible that you’re blocking JS perhaps? Though I think that Hypothesis is likely using JS too. I’d done a bit of work to keep my version from being overridden by Hypothesis (or other similar popups), but perhaps there is a conflict?
You’re seeing the Hypothesis piece because my site is aware of it and is forcing it to load natively via plugin whether you’ve got it in your browser or not.
Isn’t this basically what @hypothes_is does?
@MorrisPelzel @hypothes_is In some sense, but this is much more decentralized, lightweight, and I own and control it rather than farming it out to a 3rd party. Hypothesis also doesn’t (yet?) send webmentions or notifications to my site when it’s been marked up either.
Syndicated copies:
+1 to a lightweight approach, which I suspect can complement a full-strength annotation system.
@MorrisPelzel @hypothes_is As a site owner how can I interact if I don’t know the annotations exist? Or maybe I don’t want to? (cf. http://boffosocko.com/2017/05/10/un-annotated-by-audrey-watters/ and http://hackeducation.com/2017/04/26/no-annotations-thanks-bye)
Syndicated copies:
@MorrisPelzel @hypothes_is I’m building toward the example in the closing paragraphs that better exposes the functionality in a website to website manner without the need for a third party service (i.e. a more decentralized manner.)
Since I can link directly now (!): http://boffosocko.com/2018/01/23/fragmentions-for-better-highlighting-and-direct-references-the-web/#notice%20that%20small%20quotation%20bubbles
Syndicated copies:
@MorrisPelzel What happens when you take that “just another account” philosophy to it’s logical conclusion? http://boffosocko.com/2016/10/17/how-many-social-media-related-accounts-can-one-person-have-on-the-web/
Syndicated copies:
Fragmentions?
And Webmentions broke this completely. Wow!
Here’s the link to what I actually posted.
https://islandinthenet.com/fragmentions/
Another fantastic post Chris. I love the notion of mentioning a specific part of the text and find it particular useful to link back to sections from my longer posts or parts of my newsletters.
I find it interesting to consider alongside Hypothesis and wonder what the different use cases are?
I have added the plugin, but found the documentation associated with Kartik Prabhu’s additional code confusing, so left it. Is this what Khurt was referring to?
I look forward to seeing where all this grows?
Aaron
P.S. I thought that Flickr sent webmentions (as it is attached to Bridgy), however I was clearly wrong. Sorry.
Syndicated copies:
This idea might be very important for Kati — I’ll look into it post-haste. Thank you!
fragmentioner is a Javascript utility by Kartik Prabhu which gives a pop-up link with the fragmention URL to a piece of selected text.