- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Mon, 18 Apr 2011 12:48:27 -0700
On Mon, Apr 18, 2011 at 11:53 AM, Justin Karneges <justin at affinix.com> wrote: > Hi Tab, [snip] > So I take it that using data-* for this is not recommended? Yes, data-* isn't intended to be used for interchange information and the like. It's just a blessed way for scripts to stash data onto DOM nodes directly, in situations where that's the most convenient place to put the data. > On Friday 15 April 2011 22:12:24 Tab Atkins Jr. wrote: >> On Fri, Apr 15, 2011 at 6:29 PM, Justin Karneges <justin at affinix.com> wrote: >> > Hi folks, >> > >> > I'm desiring a way to markup "mentions of a person" semantically within >> > HTML, for use in an open standard. ?Think of a more rich form of the >> > @person convention used on Twitter and elsewhere: >> > >> > <p>@justin I totally agree</p> >> > >> > My first thought was to use a data-* attribute. ?For example: >> > >> > <p><a href="http://example.org/justin/" data-mention- >> > id="acct:justin at example.org" data-mention-context="reply">justin</a> I >> > totally agree.</p> >> > >> > However, the HTML specification says custom data attributes are only to >> > be used privately. ?So, I am not sure if it is appropriate to create a >> > public standard whereby independent developers are encouraged to utilize >> > a common data-* attribute. >> > >> > Another way is to use Microdata, though I seem to have to hack it a bit >> > to have hidden values: >> > >> > <p><a href="http://example.org/justin/" itemscope >> > itemtype="http://example.org/itemtypes/mention" >> > itemid="acct:justin at example.org"><span itemprop="context:reply"/><span >> > itemprop="name">justin</span></a> I totally agree.</p> >> >> If necessary, representing hidden data can be done via <meta itemprop >> content> in Microdata. >> >> It might be useful to understand a little more about your goal in >> marking this up, though, so the most appropriate way to do so can be >> determined. ?Is this meant to be processed by machines? ?If so, what >> use will it be put to? > > Yes, this is meant to be processed by machines, as part of a data exchange > protocol. ?It is not browser-specific. ?For example, this kind of HTML > formatting may find its way into an Atom feed, or even an XMPP message. ?It is > not expected that this format would be shoved directly to a browser for render > (although, if someone does that, ideally it should degrade gracefully, hence > the use of <a> around the name). > > Here are two things I'd expect apps to do: > > ?1) Render the mentions in a special way. ?For example, our application shows > the mentioned name inside of a colored, button-looking box with an icon image > based on the domain of the person being mentioned. ?This kind of presentation- > level detail would not be encoded in the HTML itself. > > ?2) Keep display names up to date. ?In the event that a user changes his/her > name, but the account id is not changed, future replays or retransmissions of > this HTML may contain different name text (the 'justin' part in my example). > For example, an aggregator may track name changes, and update its cached HTML > accordingly rather than holding onto stale names. > > Regarding #2, it may also be useful for servers that persist this data to do > so without saving any name text at all (imagine the 'a' element in the earlier > example having no cdata). ?Whenever the HTML blob is extracted from the db, it > would need to be stamped with the name of the mentioned user before sending > out to a client. Okay, so it's intended as basically "RSS for tweets" - a distributed way of marking of mini-conversation streams so arbitrary endpoint applications can consume and reformat them? Got it. First, I recommend working with the Microformats community to define the data language. If this is meant to be a standard, they're the go-to people to work with in getting this sort of thing stable and complete. This is roughly similar to hAtom, which is for marking up blogs and similar, but it has a further element of "replying" or "mentioning" which is somehow tied up in identity management. There's some difficult issues hiding in here that probably need a bunch of eyes to find bugs. Microformats are traditionally defined using HTML4 rel/class-based techniques, but they're trivial to translate into a more explicit Microdata-based vocabulary as well. ~TJ
Received on Monday, 18 April 2011 12:48:27 UTC