@readium/shared
Version:
Shared models to be used across other Readium projects and implementations in Typescript
212 lines (211 loc) • 6.95 kB
TypeScript
import { Publication } from '../Publication';
import { AccessibilityProfile } from './Accessibility';
/**
* Represents a single accessibility claim
*/
export interface AccessibilityDisplayStatement {
id: string;
compactString?: string;
descriptiveString?: string;
}
/**
* Represents a collection of related accessibility claims which should be
* displayed together in a section
*/
export interface AccessibilityDisplayField {
id: string;
title: string;
statements: AccessibilityDisplayStatement[];
shouldDisplay: boolean;
}
/**
* Represents the different ways visual adjustments can be made
*/
export declare enum VisualAdjustments {
Unknown = "unknown",
Modifiable = "modifiable",
Unmodifiable = "unmodifiable"
}
/**
* Represents the different types of non-visual reading
*/
export declare enum NonvisualReading {
NoMetadata = "noMetadata",
Readable = "readable",
NotFully = "notFully",
Unreadable = "unreadable"
}
/**
* Represents the different types of prerecorded audio
*/
export declare enum PrerecordedAudio {
NoMetadata = "noMetadata",
Synchronized = "synchronized",
AudioOnly = "audioOnly",
AudioComplementary = "audioComplementary"
}
/**
* The ways of reading display field is a banner heading that groups
* together the following information about how the content facilitates
* access.
*/
export declare class WaysOfReading implements AccessibilityDisplayField {
readonly id = "ways-of-reading.title";
readonly title: string;
readonly shouldDisplay: boolean;
readonly visualAdjustments: VisualAdjustments;
readonly nonvisualReading: NonvisualReading;
readonly nonvisualReadingAltText: boolean;
readonly prerecordedAudio: PrerecordedAudio;
readonly statements: AccessibilityDisplayStatement[];
private constructor();
static fromPublication(publication: Publication): WaysOfReading;
}
/**
* Navigation features of the content
*/
export declare class Navigation implements AccessibilityDisplayField {
readonly id = "navigation.title";
readonly title: string;
readonly shouldDisplay: boolean;
readonly noMetadata: boolean;
readonly tableOfContents: boolean;
readonly index: boolean;
readonly headings: boolean;
readonly page: boolean;
readonly statements: AccessibilityDisplayStatement[];
private constructor();
static fromPublication(publication: Publication): Navigation;
}
/**
* Represents the different types of rich content
*/
export declare enum RichContentType {
Math = "math",
Chemistry = "chemistry",
Music = "music",
Diagram = "diagram",
Chart = "chart",
Graph = "graph",
Table = "table",
Image = "image"
}
/**
* Rich content features of the content
*/
export declare class RichContent implements AccessibilityDisplayField {
readonly id = "rich-content.title";
readonly title: string;
readonly shouldDisplay: boolean;
readonly noMetadata: boolean;
readonly extendedAltTextDescriptions: boolean;
readonly mathFormula: boolean;
readonly mathFormulaAsMathML: boolean;
readonly mathFormulaAsLaTeX: boolean;
readonly chemicalFormulaAsMathML: boolean;
readonly chemicalFormulaAsLaTeX: boolean;
readonly closedCaptions: boolean;
readonly openCaptions: boolean;
readonly transcript: boolean;
readonly statements: AccessibilityDisplayStatement[];
private constructor();
static fromPublication(publication: Publication): RichContent;
}
/**
* Represents additional accessibility information
*/
export declare class AdditionalInformation implements AccessibilityDisplayField {
readonly id = "additional-accessibility-information.title";
readonly title: string;
readonly shouldDisplay: boolean;
readonly noMetadata: boolean;
readonly pageBreakMarkers: boolean;
readonly aria: boolean;
readonly audioDescriptions: boolean;
readonly braille: boolean;
readonly rubyAnnotations: boolean;
readonly fullRubyAnnotations: boolean;
readonly highAudioContrast: boolean;
readonly highDisplayContrast: boolean;
readonly largePrint: boolean;
readonly signLanguage: boolean;
readonly tactileGraphics: boolean;
readonly tactileObjects: boolean;
readonly textToSpeechHinting: boolean;
readonly statements: AccessibilityDisplayStatement[];
private constructor();
static fromPublication(publication: Publication): AdditionalInformation;
}
export declare enum HazardType {
yes = "yes",
no = "no",
unknown = "unknown",
noMetadata = "noMetadata"
}
/**
* Represents potential hazards in the content
*/
export declare class Hazards implements AccessibilityDisplayField {
readonly id = "hazards.title";
readonly title: string;
readonly shouldDisplay: boolean;
readonly noMetadata: boolean;
readonly noHazards: boolean;
readonly unknown: boolean;
readonly flashing: HazardType;
readonly motion: HazardType;
readonly sound: HazardType;
readonly statements: AccessibilityDisplayStatement[];
private constructor();
static fromPublication(publication: Publication): Hazards;
}
/**
* Represents conformance to accessibility standards
*/
export declare class Conformance implements AccessibilityDisplayField {
readonly id = "conformance.title";
readonly title: string;
readonly shouldDisplay: boolean;
readonly profiles: AccessibilityProfile[];
readonly statements: AccessibilityDisplayStatement[];
private constructor();
static fromPublication(publication: Publication): Conformance;
}
/**
* Represents legal exemptions
*/
export declare class Legal implements AccessibilityDisplayField {
readonly id = "legal-considerations.title";
readonly title: string;
readonly shouldDisplay: boolean;
readonly exemption: boolean;
readonly statements: AccessibilityDisplayStatement[];
private constructor();
static fromPublication(publication: Publication): Legal;
}
/**
* Represents the accessibility summary
*/
export declare class AccessibilitySummary implements AccessibilityDisplayField {
readonly id = "accessibility-summary.title";
readonly title: string;
readonly shouldDisplay: boolean;
readonly statements: AccessibilityDisplayStatement[];
private constructor();
static fromPublication(publication: Publication): AccessibilitySummary;
}
/**
* Main accessibility metadata display guide
*/
export declare class AccessibilityMetadataDisplayGuide {
readonly waysOfReading: WaysOfReading;
readonly navigation: Navigation;
readonly richContent: RichContent;
readonly additionalInformation: AdditionalInformation;
readonly hazards: Hazards;
readonly conformance: Conformance;
readonly legal: Legal;
readonly accessibilitySummary: AccessibilitySummary;
readonly fields: AccessibilityDisplayField[];
constructor(publication: Publication);
}