EPUB Annotations 1.0

An interchange format for user notes, highlights, and bookmarks

W3C Working Draft

More details about this document
This version:
https://www.w3.org/TR/2026/WD-epub-anno-10-20260924/
Latest published version:
https://www.w3.org/TR/epub-anno-10/
Latest editor's draft:
https://w3c.github.io/epub-specs/epub34/annotations/
History:
https://www.w3.org/standards/history/epub-anno-10/
Commit history
Editors:
Laurent Le Meur (EDRLab)
Ivan Herman (W3C)
Feedback:
GitHub w3c/epub-specs (pull requests, new issue, open issues)
public-pm-wg@w3.org with subject line [epub-anno-10] … message topic … (archives)

Abstract

This document defines a profile of the Web Annotation Data Model [annotation-model] by specifying a subset of the terms, and adding terms deemed useful to satisfy the entries in the EPUB Annotations Use Cases and Requirements [epub-anno-ucr] document.

Status of This Document

This section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C standards and drafts index.

This document was published by the Publishing Maintenance Working Group as a Working Draft using the Recommendation track.

Publication as a Working Draft does not imply endorsement by W3C and its Members.

This is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to cite this document as other than a work in progress.

This document was produced by a group operating under the W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent that the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

This document is governed by the 18 August 2025 W3C Process Document.

1. Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words MAY, MUST, MUST NOT, RECOMMENDED, and SHOULD in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2. Introduction

This section is non-normative.

This section defines a profile of the Web Annotation Data Model [annotation-model], as used for EPUB Annotations.

In the Web Annotation model, the core structure is the Annotation object, which contains properties defining the annotation's Body and Target. EPUB Annotations reuse the same model with some restrictions specified in this document. Subsequent sections provide more formal definitions for the terms used by this specification.

Note

This document does not define how annotations are created, stored, or synchronized in a reading system.

2.1 Relationship to URL

To be consistent with EPUB 3.4, this specification refers to the [url] standard for terminology and processing related to URLs expressed in EPUB publications and in Annotations Objects. The additional constraints expressed in EPUB 3.4 also apply. Note that this is a difference with the Web Annotation Data Model which uses the term IRI [rfc3987]. This difference does not alter the structure of the Data Model used by this specification.

3. Annotation

3.1 Annotation Object

The Annotation object retains the following annotation properties from the Web Annotation object [annotation-model]:

Name Description Format Required?
id The identity of the annotation. A uuid formatted as a URN is RECOMMENDED. URI Yes
type The RDF structure type. It MUST be "Annotation". string Yes
motivation The motivation for the annotation's creation. "bookmarking" | "highlighting" No
created The time when the annotation was created. ISO 8601 datetime Yes
modified The time the annotation was modified after creation. ISO 8601 datetime No
creator The creator of the annotation. This may be a human, an organization or a software agent.
Creator object No
target The target content of the annotation. Target object Yes
body The annotation body. Body object No
Note

The [annotation-model] specification is fairly open ended as for the value of, for example, the body property. This specification restricts the value by defining specific classes that must be used, see the definitions for Creator, Target, and Body below.

Note

The type of annotation should be considered when determining the value of the motivation property.

An annotation is a highlight if its motivation is set to "highlighting". In this case, its Selector should reference a range of characters, a region of an image or a time period.

An annotation is a bookmark if its motivation is set to "bookmarking". In this case, its Selector should reference a single point in the publication, not a range. If the Selector references a range, only the start of the range is used as a placeholder for the bookmark.

An annotation that does not include an explicit motivation is considered a bookmark.

Both highlights and bookmarks can have a Body, which is usually called a note or comment.

Editor's note

We should specify whether a property may appear at most once (body, target) because that is also part of the profile definition. This can be a separate column ("cardinality") or be added to the description. This remark may be valid for all the tables in the document.

Issue 2884: Target is not necessarily a specific segment, but we say it is Spec-Annotations

Section

No response

Describe the problem

In the section titled "Subset of the Web Annotation Data Model" we say:

The Target of an EPUB Annotation is the content being annotated, which is a specific segment in a document within the EPUB package defined by its relative Source URL and a Selector.

However, we do not require the target to be a specific segment in a document, unless we are including the entire document with no range specified as a "segment in" that document. I am actually not sure why we need to define target here at all? There are a lot of nuances (for instance, I am not sure from this definition if selector is required), and this is just a list of changes from web annotations, which is really only interesting to people that know what is in web annotations, and hence are likely aware of how target is used.

Describe the fix or new feature you propose

I propose deleting the second sentence of this bullet point.

3.2 Creator

The Creator object of an annotation is a person, an organization or a software agent.

This document defines the following creator properties:

Name Description Format Required?
id The identity of the creator. URL Yes
type Type of the creator. It MUST be "Person", "Organization" or "Software". string Yes
name The name of the creator. Localizable text No

3.3 Target

The Target object of an annotation associates the annotation with a specific segment of a resource in the current publication.

This document defines three target sub-properties:

Name Description Format Required?
source The identity of the target EPUB resource. URL Yes
selector The segment of the target EPUB resource that is annotated. Array of Selector objects No

A Target with no Selector indicates that the annotation applies to the entire target resource.

Note

A future version of the specification may add a way to reference another annotation by its unique identifier. This would allow annotations to target other annotations, enabling more complex annotation structures. In that case, we might introduce new [=Motivation] properties to indicate the relationship between annotations.

3.3.1 Source

The target resource MUST be identified by the relative URL of an existing EPUB top-level content document, as defined in [epub-34].

3.3.2 Selector

An annotation refers to a segment of a resource, which is identified by one or more Selectors. The nature of the Selectors and methods to describe segments depend on the resource type. Providing more than one Selector allows an annotation software to choose the most accurate selector from those it can handle and helps to accommodate evolutions on the annotated resource.

Several annotation selectors are specified in the Web Annotation Data Model. This specification retains selectors (with possible restrictions) deemed useful for annotating EPUB publications, and details on how to use these selectors.

3.3.2.1 Fragment Selector

The Fragment Selector object uses the fragment part of an URL defined by the representation's media type. This object is identical in structure to the Fragment Selector defined by Web Annotation Data Model, except that it restricts the media types it may use.

Name Description Format Required?
type The RDF structure type. It MUST be "FragmentSelector". string Yes
value The contents of the fragment component of an URL that describes the selection. The selector MUST have exactly 1 value property. string Yes
conformsTo Provides the reference to the specification that defines the syntax of the URL fragment in the value property. The selector SHOULD have exactly 1 conformsTo link to the specification that defines the syntax of the fragment and MUST NOT have more than 1. One of the URL strings listed in the table below. No

The following URLs are the specifications that define the semantics of fragments, and hence may be used with the conformsTo property. Other URLs MUST NOT be used.

Name Fragment Specification Description
HTML http://tools.ietf.org/rfc/rfc3236 [rfc3236]. Example: namedSection
Media http://www.w3.org/TR/media-frags/ [media-frags]. Example: xywh=50,50,640,480 or t=10,20
SVG http://www.w3.org/TR/SVG/ [svg11]. Example: svgView(viewBox(50,50,640,480))
Text fragment https://wicg.github.io/scroll-to-text-fragment/ [scroll-to-text-fragment]. Example: :~:text=an%20example,text%20fragment
Caution

This selector, used with text fragments, must be used with great care when the number of characters that can be copied from the publication is constrained by the publisher.

Note

The integration of text fragments into the specification is AT RISK. The reason is two-fold:

  1. The specification is currently a Draft Community Group Report. While there is an activity to include it into the HTML Standard [html], this is still ongoing. It may not be finalized by the time this specification goes to Recommendation. See also whatwg#11895.
  2. The integration of text fragments selector in reading systems is very challenging: the absence of a standard API in web browsers makes mapping a text fragment to a DOM Range difficult. Rebuilding a DOM range from a textual range using tree walking is suboptimal, and the existing polyfills are not well-maintained. This fragment specification cannot be retained unless a public API is defined and implemented in major web browsers. See also whatwg#8282
3.3.2.2 CSS Selector

This section is non-normative.

One of the most common ways to select elements in the HTML Document Object Model is to use CSS Selectors [CSS3-selectors].

This specification reuses the CssSelector, as defined in the Web Annotation Data Model specification, but lists it here for an easier readability.

Name Description Format Required?
type The RDF structure type. It must be "CssSelector". string Yes
value The CSS selection path to the target. The selector must have exactly 1 value property. string Yes
3.3.2.3 Text Position Selector

This section is non-normative.

This Selector describes a range of text by recording the start and end positions of the selection in the stream. Position 0 would be immediately before the first character, position 1 would be immediately before the second character, and so on.

This specification reuses the TextPositionSelector, as defined in the Web Annotation Data Model specification, but lists it here for an easier readability.

Name Description Format Required?
type The RDF structure type. It must be TextPositionSelector. string Yes
start The starting position of the segment of text. The first character in the full text is character position 0, and the character is included within the segment. Each TextPositionSelector must have exactly 1 start property, and the value must be a non-negative integer. non-negative integer Yes
end The end position of the segment of text. The character is not included within the segment. Each TextPositionSelector must have exactly 1 end property, and the value must be a non-negative integer. non-negative integer Yes

When a Text Position Selector is used on an HTML resource, it operates on a plain text serialization of the content using the Document Object Model textContent algorithm.

Character 0: Refers to the position immediately before the first character of the textContent of the scope. If the selector is a refinement, the scope is the element identified by the parent Selector; otherwise, the scope is the HTML <body> element.

Cross-Boundary Selection: When a selection spans multiple HTML elements, the parent Selector must identify a common ancestor of all involved nodes. The character stream is the concatenation of all text nodes within that ancestor, in tree order.

Robustness: To ensure persistence against DOM changes, the TextPositionSelector should be accompanied by a selector resistant to content modification and using the same serialization algorithm, e.g. the Text Fragment Selector. In cases of conflict (e.g., if the text has been modified), the latter should be used to re-calculate the correct offsets within the scope.

3.3.2.4 Refinement of a Selection

It may be more efficient or simpler to specify the segment of interest of a resource as a selection inside a selection, rather than as a selection of the complete resource. This is accomplished by having selectors chained together, where each refines the results of the previous one.

The Web Annotation Data Model specification defines the refinedBy property. This specification restricts the possible values of the property to include only those selectors that are specified by, or listed in this specification.

Name Description Format Required?
refinedBy The relationship between a broader selector and the more specific selector that SHOULD be applied to the results of the first. A Selector MAY be refined by 1 or more other Selectors. If more than 1 is given, then they are considered to be alternatives that will result in the same selection. "FragmentSelector" |
"CssSelector" |
"TextPositionSelector"
No

This selects "q" from "quick" as start position and "x" from "fox" as end position in the following HTML snippet:

<div id="intro">
    <p>Some text.</p>
    <p>The quick <em>brown</em> fox jumps over the lazy dog.</p>
    <p>The lazy <em>white</em> dog sleeps with the crazy fox.</p>
</div>

3.4 Body

The Body object of an annotation contains either plain text and style information, or a reference to an external audiovisual resource. It can also include optional tags.

This document specifies the following sub-properties of annotations:

Name Description Format Required?
type The body type. "TextualBody" | "Image" | "Audio" | "Video" Yes
format The media-type of the note. Only plain text is allowed for textual notes. Audiovisual notes can be of any media type supported by EPUB, see EPUB Media Types . string No
value The content of a textual note. Localizable text Yes, if type is "TextualBody". Not applicable for audiovisual notes.
id The relative URL of the audiovisual note. URL Yes, if type is "Image", "Audio", or "Video". Not applicable for textual notes.
color The color of the annotation; yellow by default. "pink" | "orange" | "yellow" | "green" | "blue" | "purple" No
highlight The style of the annotation; solid background by default. "solid" | "underline" | "strikethrough" | "outline" No
tags Free text categorizing the annotation. Array of string No
Note

The terms used for color and highlight (e.g., "pink", "orange", "solid", etc.) are only labels. They are not meant to denote precise values (e.g., #ffc0cb for "pink"). Instead, they represent the terms usually used by Reading Systems. The terms are mapped onto real values depending on factors like user preference (e.g. color themes) or device characteristics (e.g. display type).

Note

The format for a "TextualBody" is restricted to plain text. Markdown was also considered, but current practice among Reading Systems is to use text without any formatting in annotations. Consequently, defining Markdown as an alternative in the exchange format would have very little chance of being implemented. A further issue is the great variety of Markdown-based formats, without any one being stable enough to be referenced normatively. Future versions of this specification may reconsider this.

Note

Read “Best practices for Reading Systems” about using tags in an annotation.

4. Annotation Set

An Annotation Set is an unordered collection of annotations.

An Annotation does not contain information about its associated publication. If a set of annotations is shared as a detached file, it is mandatory to also export information that will help find the associated publication, even if the publication is not adequately identified.

Note

The AnnotationCollection defined in the Web Annotation Data Model does not provide an adequate structure for sharing annotations either as a detached file or in an EPUB package. The AnnotationCollection provides a way to retrieve annotations via a REST API and is, therefore, intrinsically paginated.

The AnnotationSet contains:

Name Description Format Required?
id The identity of the annotation set. A uuid formatted as a URN is RECOMMENDED. URL Yes
type It MUST be AnnotationSet. string Yes
generated The time when the set was generated. ISO 8601 datetime No
about Information relative to the publication. About Yes
items The set of annotations. Array of Annotation objects Yes

4.1 About

The About object contains information relative to the publication. The following table lists recommended metadata fields, directly extracted from the metadata of the publication. They are intended to help associate an annotation set with a publication:

Name Description Format Required?
dc:title The title of the publication. Localizable text No
dc:publisher The publisher of the publication. Localizable text No
dc:creator The author(s) of the publication. array of Localizable texts No
dc:date The publication date of the EPUB publication. string (a W3C Date and Time Format is recommended but not required) No
Note

All properties are from the Dublin Core Vocabulary [dcterms], also referenced in the Web Annotation Data Model as well as in the EPUB package document metadata.
Implementers are free to add other properties from the Dublin Core Vocabulary, or to use properties from other vocabularies, as long as they are properly declared in the context file.

Note

The metadata of the publication may differ from the EPUB package document metadata. This happens when the publication metadata is manually updated by the user of the reading system, or when the reading system fetches metadata from an external source.

5. Serialization of an AnnotationSet

Following the Web Annotation Data Model [annotation-model] specification, EPUB Annotations are expressed as JSON-LD [json-ld11] (a variant of JSON [ecma-404] for linked data). The model is informally defined through a JSON Schema [json-schema]; see 8. JSON Schema for further details. The media type of this model is application/ld+json;profile="http://www.w3.org/ns/anno.jsonld"

The data model is inherently extensible: implementations may add reading system dependent terms, e.g., a reference to user color profiles.

Note

Implementations that do not rely on the linked data aspects of annotations may rely on bespoke processing based on the shape of the annotation or the annotation set. Such implementations may safely ignore the context declarations and are not required to dereference the respective URLs.

6. Sharing Annotation Sets

An AnnotationSet can be shared as a detached file, or embedded in an EPUB package. The advantage of detached annotations is that they can be shared independently of the publication, and that they can be associated with a publication without modifying it. The advantage of embedded annotations is that they are always available to users of the publication, without any need to import them.

Note

Reading Systems are not required to store annotations with such a format: this format is for export and import purposes.

6.1 Detached annotations

For packaging the set of constituent resources that comprise an AnnotationSet, this specification uses the ZIP format as specified in ISO/IEC 21320-1:2015 ([ISO21320] and [zip]).

This specification introduces a dedicated file extension for detached annotations: .annotations.

The media type of this file is application/zip;profile="https://www.w3.org/TR/epub-anno-10/".

The serialized AnnotationSet is stored in the ZIP file as annotations.json, in the root of the ZIP file. Audiovisual notes, if present, MAY be in any location descendant from the root of the ZIP file. Annotation bodies within the AnnotationSet MUST reference these resources via relative-URL strings [url].

Note

The [zip] specification has few constraints on the characters allowed for file and directory names. When crafting such names, authors must be careful to use characters which allow a broad interoperability among operating systems.

6.2 Annotations embedded in EPUB

The AnnotationSet is stored in the META-INF directory as annotations.json. Audiovisual notes, if present, MAY be in any location descendant from the META-INF directory, or in the META-INF directory itself. Annotation bodies within the AnnotationSet MUST reference these resources via relative-URL strings [url].

Note

Storing audiovisual notes in the META-INF directory has implications for the size of the EPUB package, and is therefore not recommended.

7. Expectations of Reading Systems behavior

This section is non-normative.

While this specification primarily defines an interchange format for EPUB annotations, this section outlines the expected behaviors, capabilities, or affordances of Reading Systems to ensure a consistent user experience and data interoperability across different environments.

7.1 Displaying and Filtering Annotations

To provide a useful user interface for managing annotations, Reading Systems are expected to:

7.2 Generating and Processing Selectors

Because a publication may be modified or updated over time, the generation and robust processing of selectors are key to ensuring annotations remain attached to their correct positions.

When generating annotations, Reading Systems are expected to:

When processing annotations, Reading Systems are expected to:

7.3 Importing Annotations and Conflict Resolution

The expectations for matching an annotation set to its target vary depending on how the data is delivered:

To support this import workflow, Reading Systems are expected to:

7.4 Exporting Annotations

The AnnotationSet structure does not exist natively inside a reading system; it is a serialization artifact used during the export process. When generating this structure for export, Reading Systems are expected to:

7.5 Handling Unsupported Payload Types

The Web Annotation Data Model allows for rich media types that not all reading environments can parse. Reading Systems are expected to:

7.6 Handling Fallbacks in top-level content documents

There may be cases where annotations are associated with foreign top-level content documents that the current reading environment cannot render. This is for instance the case if the annotation points to a section of image used as top-level content document, this image has a textual or svg fallback, and the reading system only supports textual or svg content as top-level content documents.

If a reading system encounters such a case, it is recommended to associate the annotation with the selected fallback representation, by mapping the annotation Selector to a representation supported by this content document. It is not recommended to store this mapped selector permanently.

Issue 3076: How should annotations work with manifest fallbacks Spec-Annotations

Section

No response

Describe the problem

From a comment by @iherman on issue #3070:

Just be on the safe side I want to clarify something. If I take Example 48 then images/infographic.svg may also be target of an annotation, because it is also a top-level content document per #3070 (comment). Which is o.k. from a definition point of view. But I wonder whether it is realistic in practice. Let us say RS A displays the fallback svg file instead of the jpg file and the reader puts an annotation with that file as a target. The annotation is then transferred to RS B that does not really implement fallbacks, displays the jpg file instead. What is the fate of that annotation? Is it ignored? Is it "transformed" into an annotation on the jpg file?

Maybe something should be added to the RS consideration section on this, e.g., that RS A should give a warning on this.

Describe the fix or new feature you propose

No response

7.7 Color Mapping

To ensure visual consistency across different reading environments, Reading Systems are expected to:

8. JSON Schema

T.B.D.

9. Internationalization Considerations

9.1 Localizable texts

This section is non-normative.

The EPUB Annotation model inherits the string internationalization features defined by JSON-LD 1.1. These may be used for values that are defined as localizable texts. To set the right language metadata, the value is a separate object with the string value set explicitly through the stringValue property. The language and direction properties can be used to set the language tag and the string direction, respectively. The value for language is a string representing a [BCP47] language tag. The value for direction is a string whose value must be either "ltr" or "rtl".

In the example below, two annotations within the same AnnotationSet use different languages. In the second annotation the string direction is also set to ensure the correct rendering of the text with mixed Latin and Hebrew characters.

9.1.1 Setting the default values

The default values for language and direction may be set as part of the context declaration of the Annotation Set. The value of the top-level @context must be extended with an extra context object (using the JSON array notation) containing the default setting using the the @language and @direction keywords. See the example below as an alternative for the previous example.

Note

The extra object in the context can be used whenever a context is set. For example, it is possible to set the default value for a single annotation.

10. Privacy Considerations

T.B.D.

11. Security Considerations

The EPUB Annotations specification provides a standardized data model for importing, exporting, and displaying annotations. Because annotations can originate from untrusted external sources—such as downloaded detached files (AnnotationSet) or crowd-sourced annotation servers—implementations must treat all incoming annotation data as potentially malicious.

Implementers should design reading systems and processing tools defensively to mitigate the risks of injection attacks, malicious resource loading, and denial-of-service, aligning with the guidelines in the W3C Self-Review Questionnaire: Security and Privacy.

11.1 Plain Text Handling and Cross-Site Scripting (XSS)

This specification restricts textual annotation bodies to plain text. Consequently, reading systems MUST NOT parse, interpret, or render HTML, XML, or script markup contained within an annotation's body.

11.2 External Resources and Network Security

Annotations can reference external Web resources (e.g., in the target property or when referencing external media for audiovisual notes).

11.3 Path Traversal and Local Access

The [=Target] object utilizes a source property, which must be the URL of an existing resource within the EPUB package (e.g., an HTML document).

11.4 Algorithmic Complexity and Denial of Service (DoS)

Processing deeply nested annotation data or calculating complex selectors can be weaponized to consume excessive CPU or memory, leading to a Denial of Service.

11.5 Spoofing and Data Integrity

When annotations are imported from a detached AnnotationSet, reading systems have no inherent guarantee of the data's authenticity.

A. Index

A.1 Terms defined by this specification

A.2 Terms defined by reference

B. Issue summary

C. References

C.1 Normative references

[annotation-model]
Web Annotation Data Model. Robert Sanderson; Paolo Ciccarese; Benjamin Young. W3C. 23 February 2017. W3C Recommendation. URL: https://www.w3.org/TR/annotation-model/
[ecma-404]
The JSON Data Interchange Format, 2nd edition. Ecma International. 1 December 2017. Standard. URL: https://www.ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf
[epub-34]
EPUB 3.4. Matt Garrish; Ivan Herman. W3C. 3 August 2026. CRD. URL: https://www.w3.org/TR/epub-34/
[ISO21320]
Document Container File - ISO/IEC 21320. ISO. 2015. International Standard. URL: https://www.iso.org/standard/60101.html
[json-ld11]
JSON-LD 1.1. Gregg Kellogg; Pierre-Antoine Champin; Dave Longley. W3C. 16 July 2020. W3C Recommendation. URL: https://www.w3.org/TR/json-ld11/
[json-schema]
JSON Schema: A Media Type for Describing JSON Documents. Austin Wright; Henry Andrews; Ben Hutton; Greg Dennis. Internet Engineering Task Force (IETF). 10 June 2022. Internet-Draft. URL: https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema
[media-frags]
Media Fragments URI 1.0 (basic). Raphaël Troncy; Erik Mannens; Silvia Pfeiffer; Davy Van Deursen. W3C. 25 September 2012. W3C Recommendation. URL: https://www.w3.org/TR/media-frags/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/info/rfc2119/
[rfc3236]
The 'application/xhtml+xml' Media Type. M. Baker; P. Stark. IETF. January 2002. Informational. URL: https://www.rfc-editor.org/info/rfc3236/
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/info/rfc8174/
[scroll-to-text-fragment]
URL Fragment Text Directives. Nick Burris; David Bokan. W3C. URL: https://wicg.github.io/scroll-to-text-fragment/
[svg11]
Scalable Vector Graphics (SVG) 1.1 (Second Edition). Erik Dahlström; Patrick Dengler; Anthony Grasso; Chris Lilley; Cameron McCormack; Doug Schepers; Jonathan Watt; Jon Ferraiolo; Jun Fujisawa; Dean Jackson et al. W3C. 16 August 2011. W3C Recommendation. URL: https://www.w3.org/TR/SVG11/
[url]
URL Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://url.spec.whatwg.org/
[zip]
.ZIP File Format Specification. 15 July 2020. Final. URL: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT

C.2 Informative references

[BCP47]
Tags for Identifying Languages. Addison Phillips; Mark Davis. IETF. September 2009. Best Current Practice. URL: https://www.rfc-editor.org/info/bcp47
[CSS3-selectors]
Selectors Level 3. Tantek Çelik; Elika Etemad; Daniel Glazman; Ian Hickson; Peter Linss; John Williams. W3C. 6 November 2018. W3C Recommendation. URL: https://www.w3.org/TR/selectors-3/
[dcterms]
DCMI Metadata Terms. DCMI Usage Board. DCMI. 20 January 2020. DCMI Recommendation. URL: https://www.dublincore.org/specifications/dublin-core/dcmi-terms/
[epub-anno-ucr]
EPUB Annotations Use Cases and Requirements. Laurent Le Meur. W3C. 24 February 2026. W3C Working Group Note. URL: https://www.w3.org/TR/epub-anno-ucr/
[html]
HTML Standard. Anne van Kesteren; Domenic Denicola; Dominic Farolino; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[i18n-glossary]
Internationalization Glossary. Richard Ishida; Addison Phillips. W3C. 17 October 2024. W3C Working Group Note. URL: https://www.w3.org/TR/i18n-glossary/
[rfc3987]
Internationalized Resource Identifiers (IRIs). M. Duerst; M. Suignard. IETF. January 2005. Proposed Standard. URL: https://www.rfc-editor.org/info/rfc3987/