Text within DOM Integrity
Summary
This document describes a format for ensuring the integrity of the text content contained within target elements.
Terminology
For terms not explained in this document, please see Terminology.
- Content Attestation (CA)
Text Target format
Below is Text Target format
{
"type": "TextTargetIntegrity",
"cssSelector": "<CSS Selector>",
"integrity": "sha256-GtNUUolQVlwIkQU9JknWkwkhfdiVmHr/BOnLFFHC5jI="
}
JSON Schema
{
"title": "Text Target",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": ["TextTargetIntegrity"]
},
"integrity": {
"type": "string"
},
"cssSelector": {
"type": "string"
}
},
"additionalProperties": true,
"required": ["type", "integrity", "cssSelector"]
}
Property
type
: REQUIRED. It is the type of Content Integrity Descriptor. It MUST beTextTargetIntegrity
.integrity
: REQUIRED.It MUST be thesriString
data type. For available hash functions, it MUST conform to Hash Algorithm. Example:sha256-4HLmAAYVRClrk+eCIrI1Rlf5/IKK0+wGoYjRs9vzl7U=
cssSelector
: REQUIRED. It MUST be a CSS Selector (Selectors Level 3).
CA issuers are RECOMMENDED to specify cssSelector
so that the elements that cssSelector
matches do not change regardless of dynamic changes to the page. For example, specify a more detailed CSS selector such as #paragraphID
or p.rareClassName
, rather than just specifying a tag name such as p
for cssSelector
. If there is no CSS selector that stably and uniquely identifies the target element, it is RECOMMENDED to update the page and design the page so that it is easier to specify an id attribute for the target element.
Validation Process
- Searches for an element specified by a CSS selector in the
cssSelector
property. The target element is searched for using thequerySelectorAll()
method, starting from the root element of the page'sdocument
(for example, the<html>
element for an HTML document).- If there is a syntax error in the
cssSelector
property, it may be treated as a verification failure (e.g.DOMException
SyntaxError
). - If no elements are found, it may be treated as a verification failure.
If
null
is obtained, converts the target to an empty string.
- If there is a syntax error in the
- Gets the target element's descendant text content, which is the value of the element's
textContent
attribute. Ifnull
is obtained, converts the target to an empty string (""). - Encode all objects into UTF-8. If there are multiple objects, combine their contents.
- Validate the result and the
integrity
property using the methods specified in SRI section 3.3.5.- If an unsupported hash algorithm is used, it may be treated as a verification failure.
Text Targets use the textContent
attribute and are different from the innerText
attribute.
See Differences from innerText - MDN for the main differences between the two.
How to identify element location
Searches for an element specified by the CSS selector in the cssSelector
property.