Electronic records (21 CFR Part 11)

Signature Block <smart-signature-block>

SignatureBlock displays the signature manifestation required by 21 CFR Part 11 ยง11.50: the meaning of the signature, the printed name of the signer, the date and time of signing with the UTC offset, and the reason if one was given.

Accessibility Attributes

The SignatureBlock is static text: the meaning, the printed name, the date and time with the UTC offset, and the reason. It has no interaction. The manifestation is one readable sentence, and the verification result (record unchanged, or record altered since signing) is a word in that sentence rather than only a colour.

The following ARIA attributes are used inside the SignatureBlock:

  • role="group" - set on the container, with an aria-label of the manifestation and, when a record is given, the verdict: "Signature: Approved by Alice Smith, 2026-09-18 14:32:00 +03:00, Batch release, Record matches signature". The same text is returned by text() for a printout.
  • The parts are plain spans in reading order, meaning, name, user ID, time, reason, hash, verdict, so a reader that walks the content rather than the name gets the same sentence.
  • title - set on the shortened hash, when shown, with the full SHA-256.
  • verified="true|false" and unsigned - attributes on the application that the stylesheet colours by. The words carry the meaning; the colour follows them.

Keyboard Interaction

The SignatureBlock has no keyboard interaction. It is not focusable and holds nothing that can be operated. Assistive technology reaches it as content.

Localization

All strings the SignatureBlock exposes to assistive technology come from its messages property, so they can be provided in the user's language. Set locale to select a language and add a language through messages. Assigning messages replaces the whole object, so include the existing languages when adding one: el.messages = Object.assign({}, el.messages, { de: pack }); If the built-in en pack is dropped, switching back to English shows raw message keys.

The SignatureBlock uses the following message keys:

  • blockLabel, unsigned, verified, altered, userIdPrefix, hashPrefix
  • byApproved, byReviewed, byAuthored, byResponsible, byVerified, byWitnessed, bySigned

German, French, Spanish and Chinese packs are included in the Smart.Industrial package. A meaning the block has no key for falls back to the meaningLabel the signature carries, so a custom meaning still reads as "Released by".

Additional information on WAI-ARIA for the SMART Framework can be found here.