person-tag

A  person tag  (AKA people tag ) is a tag on a post that refers to a specific person by URL, and which the post author explicitly adds as a tagging action, beyond just mentioning a person via hyperlink, h-card, or @-name (autocompleted or not).

A person mention is a reference to a person by homepage URL, but it is not explicitly a tagging action. All person tags are person mentions, but not all person mentions are person tags.

Example
Here was a simple real world example of a note that's been person-tagged: Demoing person tags with 👤 Ryan Barrett Tantek Çelik December 3, 2015 9:42am PST

Why
By supporting people tags in posts, you can more explicitly/automatically notify people via webmention to their homepage at their URL that you have explicitly tagged a post as being about them, e.g. a photo post where they're in the photo.

How to markup
You can tag a post with a person-tag (as opposed to just a plain text tag) by using an h-card for the p-category element inside an h-entry, e.g. from the example above, here is markup just for the person-tags:

… 👤 Ryan Barrett Tantek Çelik …

That will tag the current h-entry as being about Ryan Barrett of snarfed.org and Tantek Çelik of tantek.com.

If the current h-entry has a "u-tag-of" link to another post, then it is a tag-reply that tags that other post as being about those people.

(Optionally) With other profiles
You can also provide links to a person's (multiple) other profiles to their person-tag h-card:

👤 Tantek Çelik (t,    f)

👤Tantek Çelik (t, f)

Where the parenthetical (t, f) could/should be equivalent social media icons for Twitter and Facebook without parentheses. E.g.:

👤Tantek Çelik https://plus.google.com/_/favicon?domain=twitter.com&.png https://plus.google.com/_/favicon?domain=facebook.com&.png

This method of marking up person-tags is useful for a couple of reasons:
 * 1) Person-tagging people without their own websites
 * 2) Providing silo profile URLs for the silos you want to POSSE to, e.g. using a service like Bridgy.

TIP: You should only provide links to a person's (multiple) other profiles that they themselves link to from their personal site (or possibly if their known public other profile (e.g. Twitter) links to their personal site) or if their site and other profiles are linked from a reputable public source like Wikipedia. E.g. if a person does not link from their personal site to their Facebook profile, you should not link to them as if they are the same person.

How to parse
If you receive a webmention to your homepage, how do you know, that the intent was to tell you that you were tagged in a post?

You parse the "u-category" on the link to your site to see that that link is "tag" of the containing h-entry.

That is, when you verify the webmention, if you see that the link to you is on a u-category inside an h-entry, that means you have been person-tagged in that h-entry.

Kevin Marks
has person-tags on his notes from Homebrew Website Club 2014-11-19 (posted on that date). First known real-world use of publishing proposed person-tags using then proposed markup of
 * http://www.kevinmarks.com/hwc2014-11-19.html

More recent examples have hovercards support added for example indiewebcamp sf 2015 - this is done dynamically using a js script calling unmung's hovercard endpoint.

Thanks to webmention.herokuapp.com person tags to kevinmarks.com show up on his homepage as comments. bridgy echoing back twitter @ mentions make up most of these.

Ben Roberts
has person-tags on his site using Postly since 2015-04-30. This is done through any micropub endpoint simply entering a URL as a category. The micropub endpoint fetches the URL to check for an h-card and, if available, will tag with the name and url extracted from that h-card. Support for receiving tags and being tagged added on 2015-05-03.
 * https://ben.thatmustbe.me/note/2015/4/1/4/
 * subsequently Ben used his person-tagging support in MobilePub to be player A in passing SWAT0 at IndieWebCamp 2015.

Jeena
has person-tags on his photos from Homebrew Website Club 2015-07-29
 * https://jeena.net/photos/164

Kyle Mahan
added support for person tags to Red Wind on 2015-11-17, where any person in the contact list can be tagged:
 * http://2015.kylewm.com/2015/11/2008-kristen-kyle

Ryan Barrett
adds person-tag markup manually to some of his WordPress posts since 2015-11-18, e.g.
 * 2015-11-18 photo: Celebrating Homebrew Website Club’s 2nd anniversary.
 * as such used his manual person-tagging to be player A, one of two indieweb players, in passing Silo SWAT0 at Homebrew Website Club SF 2015-11-18!

Bryn Wolf
posts short notes with person-tags on her WordPress blog since 2015-12-03, e.g. Using two person-tags each with multiple other profiles.
 * 2015-12-03 note: Person-tag experiment
 * 2015-12-03 note: New person-tag test

Tantek
undefined occasionally posted photos with person-tags on tantek.com using Falcon since 2015-12-05, e.g.: ""
 * 2015-12-05 photo: W3C Social Web Working Group meeting
 * FB POSSE copy including 3 person-tags from the original post, automatically via Bridgy Publish.
 * 2016-06-02 photo: Homebrew Website Club SF. See screenshot of person-tags display in post-footer: "[[File:2016-06-03-tantek-person-tags-footer.png]]"
 * FB POSSE copy: "[[File:2016-07-08-fb-posse-photo-person-tags.png]]" including all seven person-tags from original:

Ashton McAllan
added person-tag receiving to her WordPress:
 * person-tags, though sent to the homepage, are shown on the about page
 * blogroll entries have a json object stored in wordpress's "notes" field for the record.
 * something like
 * Quickposse just checks to see if an @persontag has a matching blogroll entry and, if everything exists, looks in the json object to see if it has a property for the posse destination

Jay Robinson
can add person-tags to any post by adding a category of @persons-url
 * Currently I only show the url I enter as the category but I plan to do some sort of lookup to fetch the person's name as well
 * first note with person-tags http://j4y.co/p/20160621170659_576966231afbb

Sebastiaan Andeweg
added support for autolinking  as a mention, and soon after added autolinking   to person-tag that person (the same link, but with   on it.)
 * https://seblog.nl/2017/06/14/6/at-mentioning-people

gRegor Morrill
manually added a person-tag to a post on 2017-12-13: https://gregorlove.com/2017/12/immediately-thought-of-tantek/

Jamie Tanna
adds a person tag for a FQDN  and is platform aware (as per https://www.jvt.me/posts/2020/03/22/at-mention-people/) so will syndicate the Twitter username when POSSE'ing to Twitter if it is known by Jamie' site.

Example of note https://www.jvt.me/mf2/2020/03/g1mpf/ and syndicated Tweet https://twitter.com/JamieTanna/status/1241776653124149253

capjamesg
has implemented person tag support on his personal website. Person tags can be used in any post type on his site. To use a person tag, James follows this syntax:

@jamesg.blog

Where jamesg.blog is equal to the unique identifier for a person. This may be a domain name or another identifier, such as a nickname the person uses in a chat group.

James has a repository of person tags on his site to which he can refer. If a person tag does not exist, a regular link with the anchor text equal to any domain name specified in the tag syntax is created. If a person tag does exist, the tag uses the name and domain name in his tag registry.

For example, @jamesg.blog might translate into:

James' Coffee Blog

James wrote about adding person tag support to his site in IndieWeb New Years' Eve Commitment: Expanding my person tags.

Noterlive
Noterlive generates person-tags by default by in the HTML markup using first proposed markup of, so anyone else who uses Noterlive will get them too. Examples:
 * uses Noterlive on www.kevinmarks.com to publish collections of live tweets.

Mobilepub
The micropub client MobilePub has an interface for supporting person-tags on a post.

OwnYourGram
OwnYourGram translates person-tags on Instagram (of their @-names) into person-tags of people's personal sites (assuming they link them on their IG profiles), when posting to your site via micropub.

OwnYourSwarm
OwnYourSwarm translates person-tags of Swarm users into a person-tag of that person's personal website if they also use OwnYourSwarm. (Swarm doesn't provide a "website" field in profiles). See https://ownyourswarm.p3k.io/docs

Bridgy Publish
Bridgy Publish consumes (parses) person-tags from your original post, and cross-posts them in POSSE copies to at least Facebook and Flickr.

Details:
 * Facebook person-tags work in one of two ways
 * Original post has a person-tag of an indieweb site who has signed up for Bridgy themselves with their Facebook profile (and thus connected the two)
 * Person-tag includes an explicit  link where facebookUserID is the numerical id of the person being person-tagged (available in the source of their profile in an invisible fb://facebook.com/facebookUserID)

Feature requests:
 * Twitter person-tag support
 * #459 - support person-tags (including to Twitter). Closed because no sign of API support now or soon.
 * #547 - support "fake" person-tags as in-tweet text. Unlikely as a lot of custom work, and should be prototyped with Indie Web (perhaps manual) POSSEing first.

Lwa
Person tagging support is done by collecting h-cards from the currently displayed channel as well as |querying the user's Micropub endpoint for contacts.

Kyle Mahan

 * "I'm interested in having 'in this photo: list of names' type tags, but not so much tagging x/y coordinates"

Tantek
undefined I am interested in helping solve this problem to escape the "50 person-tags limit" in Facebook photos (as documented below in ). A group I am involved with posts group photos every week with more than 50 people and people get left out because of this limitation. I don't want people to be left out. Since this comment, and for some time now, my thoughts are more aligned with what and  wrote below, especially since the emergence of ClearView as a tool that scrapes tagged photos and provides a service to authorities, without any consent from those whose photos are being scraped.

Ben Roberts
I am interested in being able to tag people with co-ordinates as well. I am working on adding the code needed to have a test implementation soon based on Tantek's ideas in the chat

The Dod
Personally, I find tagging to be a dangerous habbit (especially today, when face recognition is becoming more and more available to governments and more common criminals). I may be old fashioned, but I believe that any person-tagging protocol should involve consent or "moderation" by the person being tagged. The protocol should require some way of privately informing the tag's target that there's a photo (perhaps of something that "happened in Vegas") and the target should confirm to the source (e.g. via clicking a link and posting a form with the picture and a "This is me and you can publish that this is me" checkbox). If it didn't happen (or if there's no way to reach the target), it should be considered bad manners to publish such a tag. At least IMHO.

rhiaro
I agree that telling the world 'this person is here', eg. in a photo, checkin, article about someone should certainly have some kind of consent - the tagged person is alerted and can say yes or no to the tag being published with the post. Maybe just by rejecting a webmention.

Silo Examples
The following silos support people tagging and are thus a good starting point for documenting people-tagging user experiences for recreation on indieweb sites.
 * Facebook - all post types, an explicit text mention is interpreted as a people tag, plus you can explicitly people tag areas of photo posts. Limitation: you can only tag up to 50 people in a photo on Facebook.
 * Flickr - you can people tag a photo and optionally denote a rectangle of the photo that indicates that person.
 * Instagram - you can people tag a photo and optionally denote a point on the photo (from which the label of the person's name is hung).
 * Twitter - photos in tweets can be people-tagged - see details.
 * Google+ - photos can be people-tagged - see details.
 * Foursquare - you can tage people in checkins

Twitter
A person tag in stream view:



A person tag on the tweet permalink: (URL?)



Multiple person tags in permalink view from ... excerpted for fair use ... "👤 Jenn, Shaluinn and Heather Stephens"
 * https://twitter.com/oiselle_team/status/720354786466344960
 * one "photo" (separate apparent photos were stitched together manually)
 * three person-tags
 * Note lack of Oxford comma, likely explicit but a design error on Twitter’s part
 * Lack of Oxford comma makes the latter two people errantly appear to be siblings, since second only has a given name, and third has both given and surnames. This is a good concrete example of why an algorithmic situation (such as a list of three people) should always automatically use an Oxford comma.

Twitter limitations
There is currently (2015-11-05) no API support for posting person tags on photos to Twitter.
 * See: https://github.com/snarfed/bridgy/issues/459#issuecomment-154229985 for details and more links

Swarm
When writing a description/shout on a Swarm checkin, if you start typing the name of a person, the Foursquare app Swarm will pop-up a UI to pick from friend's names matching what you've typed, which you can pick, or dismiss and keep typing text.

If you pick someone from that person-choose UI, Swarm adds a person-mention with orange background inline in your comment, AND adds a person tag in a little mini-face-pile at the bottom just above the (Cancel) (Checkin) buttons. The person-mentions are uneditable but each deletable as a whole name. If you delete a person-mention inline in the content, the respective person-tag icon below is also removed.



Each person-tag icon has a little orange circle with white x on its lower right quadrant, and clicking that will remove the person-tag (but leave the person-mention intact).

After the checkin is created, the person-mention still appears inline with the checkin note.



Criticism
By tagging someone in a post, you are disclosing information about them that they may not wish to have disclosed and/or involving them in a conversation unwillingly.

This can range from sharing and tagging their photo when they might not want such things to be seen publicly to simply feelings of awkwardness.

Deciding whether to person tag others

 * Check the site of the person being tagged to see if they have posted something equivalent. Example, if they posted they were at X event and they also have photos of themselves in general, this could be an indicator.
 * For events like Homebrew Website Club and Indiewebcamp that have an explicit photo policy with a distinctive opt-out, this could be considered consent.
 * Take extra care in tagging people for older content. While someone may have been fine with a photo or attending an event at the time, being reminded years later...their perspective may have changed.
 * If you are truly concerned, ask.

Rethinking tagging and untagging user flow
Existing person-tagging systems allow people to tag others in their photos typically without prior permission or even interaction which presumes good behavior and puts the burden of handling and undoing misbehavior on those who may be harmed by the tagging.

We should rethink the user flow of person-tagging to instead design for default respect and safety, putting more burden on the folks doing the person-tagging than the folks who may be errantly mistagged.

Silos like Flickr, Facebook, Instagram, and Twitter all have the ability to tag people in photos by default, and then present the person that is tagged with the option of untagging themselves. People can opt-out of being person-tagged, but that's not necessarily ideal as a default. Some(which?) have defaults that only allow person-tagging of people who have designated you as a friend, which again might be too much of a bundling of a permission with the expression of a relationship.

This current state of this user flow is something like:
 * 1) A tags B in a photo
 * 2) B is notified that they’ve been tagged
 * 3) B can tap that notification or view their notifications and tap the entry to view it
 * 4) B when viewing the photo, B can see that they’ve been tagged in it and has the option to untag themselves,
 * 5) B can optionally also block A so they cannot person-tag B in the future

Another variant involves three people (e.g. Flickr and Facebook allow this):
 * 1) A posts a photo
 * 2) C sees that post in their reader
 * 3) C recognizes B and tags B in the photo
 * 4) B receives a notification and can view the photo, untag themselves etc. just like before
 * 5) B can optionally also block C so they cannot person-tag B in the future

These default user flows generally assume good relationships and behavior among A,B,C and only handle misbehaviors after the fact, putting the burden on B to undo or repair the situation.

Instead we should rethink this entire flow in terms of respect, safety, and consent, and design a new suggested user flow accordingly, using that to drive any new protocol interactions that may be needed.

One model to consider is a rather than
 * grant permission to allow tagging of yourself
 * ok to be tagged by anyone or even by friends
 * ask permission to tag someone

Dopplr had a model for "friending" like this. You would: Specifically instead of requesting to follow protected content (e.g. Twitter, Instagram). In the example of Dopplr, that protected content was your upcoming travel plans. And there was no "request to follow".
 * grant permission to allow viewing of content

Additional considerations / concerns:
 * unintentionally helping facial recognition algorithms
 * tagging people in protest having harmful consequences

... continue brainstorming here, including what a step-by-step interaction could look like ...

Plain text authoring
A key challenge for person-tagging is how to easily enter person-tags in a simple text-only UI (e.g. SMS, email, HTML textarea etc.)

Here are some thoughts on how to do plain text authoring in a repeatable, memorable, understandable, and human-editable way. - Tantek 18:10, 15 November 2015 (PST)

hashpersontags

 * '#' - is now known as the method by which to explicitly tag something (hashtag) with a term, above and beyond merely mentioning that term.
 * person-tags are basically URLs that represent people
 * if you merely link to someone e.g. "tantek.com" in text content, you are only mentioning them, you are not explicitly tagging them
 * it makes sense to try re-using the '#' prefix to mean "explicitly tag with this"
 * Thus:  as plain text shorthand to mean explicitly (person)-tag with "tantek.com"

multi-profile person-tags
Until we can depend on publishing and consuming systems having rel-me caches (lazily grown) in general, publishers may want to explicitly publish multiple URLs per person. The u-category + h-card markup allows for this already, yet it would be nice to also have a plain text authoring solution that has a reasonably legible / re-editable fallback.

Here are some ideas for plain text authoring for people and orgs/pages:
 * #tantek.com(@t, Facebook/tantek.celik)
 * #starbucks.com(@starbucks, Facebook/Starbucks)

These would of course be turned into h-cards with  properties for each profile, using auto_link algorithms like:
 * tantek.com -> imply http -> http://tantek.com/
 * @t -> assume Twitter @-names -> https://twitter.com/t
 * Facebook/tantek.celik -> assume ".com" domain for a string with "/" (a path) -> http://facebook.com/tantek.celik -> whitelist https upgrade -> https://facebook.com/tantek.celik
 * Or fb/ or f/ possibly?

For Facebook pages, consuming code may require the page id instead, that is, go from:
 * Facebook.com/Starbucks
 * view source (not logged in)
 * ... -> 22092443056
 * -> linking to Facebook.com/22092443056
 * -> linking to Facebook.com/22092443056

Q: How can consuming code tell the difference between a person and an org from such a hand-authored "person-tag"? Does it matter?
 * A: For some org references, consuming code can automatically determine that it's an org:
 * own domain: if the domain's representative h-card is an "org" h-card (that is "p-org" property == "p-name" property), then it's an org
 * Facebook: if there's  per the above notes, that presence of "page" means it's an org, not a person (which would have "profile" there instead").
 * Twitter: if the Twitter profile has a URL, then apply "own domain" test above.

silo only person-tags
What if person has no domain? Then:
 * Twitter
 * #@t


 * Facebook
 * #Facebook/tantek.celik


 * Both
 * #@t(Facebook/tantek.celik)

In each of these cases, a nicknamescache could be used to auto-expand the parenthetical portion (of additional identities for person-tag (semi-)supporting silo destinations), as well as change a Twitter person-tag into one that is indieweb-primary with their Twitter profile inside the parentheses.

in content vs separate UI
There are two general approaches to authoring person-tags:
 * 1) Enter the hashpersontag as described above inline in text content like: "Selfie with #p1.example.com" In this case this should be stored as is in the content source, and the person-tag markup for p1.example.com should be automatically generated, in the h-entry, outside the e-content. When auto-linked and presented on the web, the # should be removed, and the person tags should be collected and displayed at the end e.g.: "Selfie with p1.example.com 👤 p1.example.com"
 * 2) A separate UI for authoring person-tags, at a minimum a field, perhaps re-use an existing separate "tags" field, where you can author plain text person-tags just as the above. In this case this plain text set of tags could be stored directly in a separate property of the h-entry, like say , which was then used to automatically generate person-tag markup when presented on the web.

minimal separate field UI
Given the increased complexity of implementing proper tweet text for inline content person-tags (option 1 above), it makes sense to first try implementing a separate UI first (as a text input field), since that should be simpler (less code to build a reasonably usable feature).

An implementation strategy (if this is too specific for person-tag brainstorming I can move to Falcon page) if trim(intervening) == '(' then   repeat: parse alternate profiles     collect next link into alternates     if next text == ')' then exit repeat else if next text != whitespace then collect as name continue repeat end repeat else if char 1 of intervening is alphanum, if first word is "facebook/" or "fb/" create facebook.com person-tag else create plain p-category tag for it. end if  look up indieweb site, name in h-card contacts (if provided) if not found, synthesize name: if twitter, use @-name literally else if FB, use "Facebook/alias" as name else if has path, use "site(-com)/path" as name else use indie domain as name end if
 * UI: input field that maps 1:1 into content storage, e.g.
 * storage: perhaps a "p-x-user-tags" property inside the "h-entry", a space separated set of plain-text person-tags, no need for # prefix.
 * new CASSIS  function (takes string text to markup, and eventually an optional additional h-card contacts structure using jf2) that:
 * apply auto_link RE to discover them all
 * create u-category h-card tags automatically
 * anything non-just-space intervening:

auto-suggest separate field UI
In addition to the above minimal separate field UI:


 * While you're typing, the code should check what you type with your nicknames-cache, and suggest matching names.

Advantages:
 * less typing for the user to type person-tag names
 * nicknames cache can provide URL and other profiles for a chosen name

person tag presentation

 * presentation: in code that generates markup for a post
 * retrieve user-tags from storage (or already have it retrieved when storage was loaded)
 * use  to turn storage user-tags into HTML markup for output
 * prepend with "👤 " and append to output HTML for the post

Person-tag presentation should be outside e-content but before before web actions buttons. "👤 name ..." That should be enough for:
 * people seeing a post that it's person tagged
 * Bridgy to pick it up to POSSE person-tags to Facebook
 * but does nothing for Twitter POSSE copy (yet)
 * incrementally figure that out later
 * document simplest thing I could do to plain-text person-tag it
 * When auto-linking a URL, delete the # character before it

Plain text presentation
Since person-tags have a specific semantic above and beyond the plain text content of a post, and frankly there's no "#" equivalent for explicit-person tags (@-mention already means, mention, not tag), it makes sense to design a way of presenting person-tags that is distinct from the plain text content, and (likely) different from what is easiest to type!

Each of these brainstorms/examples is expected to be put on its own line, with a line-break before and/or after as needed if there is anything before or after respectively.

plain plain text
Most minimally, e.g. SMS, you would want something that is fully readable and ASCII-ish (no emoji). Thus:

"With: Person1givenname Person2givenname Person3givenname"

If space (character count) is not an issue, then use full names and punctuation like:

"With: Person Name1, Person Name2, and Person Name3"

plainish text
Many modern systems / devices support Unicode sufficiently to support emoji as well, thus for those you could instead do:

"👤 Person1givenname Person2givenname Person3givenname" again with more punctuation & content: "👤 Person Name1, Person Name2, and Person Name3"

auto-linked text
On systems which auto-link the text, it's slightly nicer to provide the people's domain names as well.

"👤 Person1givenname (p1.example.com), Person2givenname (p2.example.net), and Person3givenname (p3.example.org)"

Adding a parenthetical domain name after the person's name requires using commas to visually cluster names and domains, and it's assumed that that's friendlier than *only* providing domain names like:

"👤 p1.example.com p2.example.net p3.example.net" Which is still another option if someone wishes to experiment with it.

tweet text
On Twitter we can do better for local users than use so much space with full names and domain names, and that is to use people's @-names instead (where available), and perhaps fallback to their plain domain names where they don't. E.g. if Person1 and Person3 have Twitter handles but Person2 does not:

"👤 @exampleperson p2.example.net @exampleorg"

Alternatively if Person2 does not have a domain then simply use their given name.

"👤 @exampleperson Person2givenname @exampleorg"

If there are more than three person-tags, I think it is best to use a "summary" approach like seen in summaries of person-tag lists on Facebook etc. For such summaries on Twitter it makes sense to give @-names preferential treatment over indieweb domains over people lacking both.

E.g. if you had four person tags by following the above algorithm:

"👤 @exampleperson p2.example.net @exampleorg p4.example.edu"

You could abbreviate for Twitter like Facebook does in person-tag presentation summaries ("and n others")

"👤 @exampleperson @exampleorg and 2 others"

However tweets are not editable, whereas Facebook posts are, and thus presuming this is for POSSE purposes, it may make sense to omit the number, expecting that your post may acquire additional tags (typical, especially for photo posts) over time:

"👤 @exampleperson @exampleorg and others"

The phrase "and others" feels a bit awkward though without the number, perhaps due to seeing it too often with a number. Alternatively we could use the word "more" an ellpsis "…" or both "more …"

"👤 @exampleperson @exampleorg and more" "👤 @exampleperson @exampleorg …" "👤 @exampleperson @exampleorg and more …"

Of those options, I believe the shortest makes sense contextually on Twitter, thus:

"👤 @exampleperson @exampleorg …"

This keeps it nice and short and devoid of noisy punctuation when possible (all good things on Twitter's tweet-length limited medium).

With any of these summarizing methods, it makes sense to include the original post link after the person-tag text, as people are used to seeing a way to get to the "more" or "…" information either by it being directly linked, or a visible (preferably linked) URL immediately following it. Thus

"👤 @exampleperson @exampleorg … (author.example.com/original-post)"

Where "author.example.com/original-post" is what is displayed in the text, yet it is fully hyperlinked to the original, that is, Twitter's normal behavior for hyperlinks in the plain text content.

Related Bridgy Publish feature request:
 * photo post to Twitter POSSE person-tag(s) as tweet text: https://github.com/snarfed/bridgy/issues/547

tweet inline person-tags
If an author can enter person-tags (e.g. per above "#" proposal) inline in content, there are additional considerations for the tweet text.

When POSSEing to Twitter, it makes sense to indicate inline person-tags (e.g. with a 👤), and then not list those in the explicit list but rather provide a hint that some tags were already present in the content text, e.g. simple case: "Selfie with 👤 p1.example.com"

with more than one in a row, omit intervening 👤 as it's obvious from context.

e.g. authoring: "Selfie with #p1.example.com #@exampleperson" tweet text: "Selfie with 👤 p1.example.com @exampleperson"

with many more:

authoring: "Selfie with #@exampleperson #p2.example.net #@exampleorg #p4.example.edu" tweet text: "Selfie with 👤 @exampleperson p2.example.net @exampleorg p4.example.edu"

Note that none of these examples include a separate line (near the bottom) starting with "👤" because all the person-tags are indicated inline (since they were authored that way).

Using + as autolink
Instead of the syntax, the syntax   can also be used while autolinking. The plus-symbol resembles the "with" part of a person-tag: you explicitly say is with someone. (Silo's like Swarm or Facebook will also add that plain text "— with Someone" at the end of a post.)

Basic Person Tagging example
To suggest person-tags in someone else’s photo, post a person tag reply
 * As explained: tag-reply

HTML imagemaps
Summary: HTML area tags could be used to area-person-tag people in photos, and could be parsed via mf2, however they lack a good/obvious mapping to micropub, which makes this approach problematic. Archived here for documentation purposes.

Ben Werdmuller wondered if you could tag people in photos by linking to their profiles using HTML imagemaps (!) and marking up the imagemap links with microformats. That might look something like:

However, because the HTML syntax of imagemaps sits outside the actual image tag, it may be worth adding a microformat to the map itself.


 * While this would work, and the parsing algorithm for Microformats2 could add area tag support, the problem I hit was in mapping this in to micropub. There are no fields to define coords or shape that would really fit.  It is essentially a set of embedded objects which micropub tries to avoid -

Should Twitter links be person-tags
Q: Should twitter handle links be person tags?

A: No. Tagging a person is different from mentioning them. Twitter @-mentions are not person-tags by default; absent any other information they are merely @-mentions, mentions as it were, not tags.

SWAT0
People tagging was one of the steps of the SWAT0 social web acid test developed / proposed in 2010.

Sessions
Person tagging was discussed at (at least) these IndieWebCamp sessions:
 * 2015/SF/Schedule
 * 2020/West/tag-youre-it