Inconsistencies in the `icon` and `image` properties
@evanp is already working on this.
Since Jan 9, 2026.
- Dominant language
- HTML
- Stars
- 313
- Forks
- 70
- PR merge metrics
- No merged PRs in 30d
Description
This same issue affects other properties as well. For example,
iconandimagehave similar inconsistencies:
- ActivityStreams Vocabulary: Both have range
Image | Link- JSON-LD Context: Both are defined with
@type: "@id"- Real-world usage: Often used with bare URL strings (e.g.,
"icon": "https://example.com/avatar.png")The W3C primer acknowledges this:
assume that a bare string is the
hrefof aLinkobject, not anidBut JSON-LD processors automatically treat
@type: "@id"strings as IRI references.The primer also notes that this issue is already recognized:
Note that, for linked-data-aware consumers, the
@typeof theurlproperty is not strictly aligned with the text of the specification. Namely, it requires an@idvalue, which may not match with thexsd:anyUrioption mentioned in the text.This creates implementation challenges for ActivityPub libraries that rely on proper JSON-LD processors (like Fedify), which automatically attempt to dereference these URLs as ActivityStreams objects rather than treating them as
Linkhrefs.See the discussion at https://github.com/fedify-dev/fedify/issues/420 for a concrete example where this causes parsing errors.
The affected properties likely include all those with:
- Range of
Object | Link(or similar combinations)- Current JSON-LD context definition of
@type: "@id"- Common real-world usage as bare URL strings
Would it make sense to address these properties together with
href?
Originally posted by @dahlia in #595
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.