Skip to main content

Accessibility Ontology

Human–Computer Interaction
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 06 October 2026
Audio Overview
FLOW ALGEBRA
Accessibility Ontology
Kireth Semantic Research Archive

PAGE:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/human-computer-interaction/accessibility-ontology.html

AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)

FLOW "AccessibilityOntology" v4.0

# ---------- DOMAIN ----------
DOMAIN := ComputingOntology
SUBDOMAIN := HumanComputerInteraction
ONTOLOGY := AccessibilityOntology

# ---------- PRIMARY ENTITY ----------
ENTITY Accessibility {
    definition:
        "The degree to which digital systems, interfaces, information and
         interactions can be perceived, understood, navigated and operated by
         people with diverse sensory, physical, cognitive and technological
         capabilities.";

    objectives: [
        Perceivability,
        Operability,
        Understandability,
        Robustness,
        InclusiveAccess,
        EquivalentInteraction
    ];
}

# ---------- CORE ENTITIES ----------
AccessibilityEntity := {
    User,
    Interface,
    Content,
    InteractiveControl,
    InputMechanism,
    OutputModality,
    AssistiveTechnology
};

UserCapability := {
    VisualCapability,
    AuditoryCapability,
    MotorCapability,
    CognitiveCapability,
    SpeechCapability
};

AccessibilityBarrier := {
    PerceptionBarrier,
    KeyboardBarrier,
    NavigationBarrier,
    ComprehensionBarrier,
    InputBarrier,
    TimingBarrier,
    CompatibilityBarrier
};

AccessibilitySupport := {
    SemanticStructure,
    KeyboardAccess,
    TextAlternative,
    Caption,
    Transcript,
    FocusIndicator,
    AccessibleName,
    ErrorIdentification
};

# ---------- FUNDAMENTAL RELATIONSHIPS ----------
User INTERACTS_WITH Interface;
User MAY_USE AssistiveTechnology;
Interface PRESENTS Content;
InteractiveControl RECEIVES Input;
AccessibilityBarrier RESTRICTS UserInteraction;
AccessibilitySupport REDUCES_OR_REMOVES AccessibilityBarrier;
SemanticStructure SUPPORTS AssistiveTechnologyInterpretation;

# ---------- ACCESSIBILITY FLOW ----------
UserGoal ->
    PerceiveInterface
    -> UnderstandInformation
    -> Navigate
    -> OperateControls
    -> ReceiveFeedback
    -> CompleteTask;

IF BarrierBlocksAnyRequiredStage
THEN TaskAccessibility := reduced;

# ---------- PERCEIVABLE ----------
Perceivable :=
    InformationAndInterfaceCanBeDetectedByUser;

Perceivability MAY_REQUIRE {
    TextAlternative,
    Caption,
    SufficientContrast,
    AdaptablePresentation,
    NonColourCue
};

# ---------- TEXT ALTERNATIVE ----------
NonTextContent MAY_REQUIRE TextAlternative;

TextAlternative :=
    TextEquivalentCommunicatingPurposeOrMeaning;

DecorativeContent MAY_BE HiddenFromAssistiveInterpretationWhereAppropriate;

# ---------- IMAGE ----------
Image MAY_BE {
    InformativeImage,
    FunctionalImage,
    DecorativeImage,
    ComplexImage
};

IF ImageInformative
THEN MeaningfulTextAlternative := required;

IF ImageFunctional
THEN AccessibleName SHOULD_DESCRIBE Function;

# ---------- AUDIO ----------
AudioContent MAY_REQUIRE {
    Transcript,
    CaptionWhereApplicable,
    AlternativeRepresentation
};

AuditoryInformation SHOULD_NOT_BE SoleRequiredChannelWhenEquivalentAlternativeNeeded;

# ---------- VIDEO ----------
VideoContent MAY_REQUIRE {
    Captions,
    Transcript,
    AudioDescriptionWhereNeeded
};

TimeBasedMediaAccessibility DEPENDS_ON ContentAndUserNeed;

# ---------- COLOUR ----------
Colour MAY_COMMUNICATE Information;

IF MeaningDependsOnlyOnColour
THEN AccessibilityBarrier := possible;

AlternativeCue MAY_INCLUDE {
    Text,
    Shape,
    Pattern,
    Icon,
    Position
};

# ---------- CONTRAST ----------
Contrast :=
    VisualDifferenceBetweenForegroundAndBackground;

InsufficientContrast MAY_CREATE PerceptionBarrier;

TextAndInteractiveIndicators SHOULD_HAVE AdequateVisualDistinction;

# ---------- OPERABLE ----------
Operable :=
    UserCanControlAndNavigateInterface;

Operability MAY_REQUIRE {
    KeyboardAccess,
    LogicalFocusOrder,
    VisibleFocus,
    SufficientTargetSize,
    AdequateTiming
};

# ---------- KEYBOARD ACCESS ----------
KeyboardAccess :=
    AbilityToPerformRequiredInteractionWithoutPointerDependency;

InteractiveControl SHOULD_BE KeyboardReachableWhereApplicable;

IF RequiredControlCannotReceiveKeyboardFocus
THEN KeyboardBarrier := true;

# ---------- FOCUS ----------
Focus :=
    CurrentTargetOfKeyboardOrAssistiveInteraction;

FocusOrder SHOULD_MATCH LogicalTaskSequence;

VisibleFocusIndicator COMMUNICATES CurrentFocus;

IF FocusNotVisible
THEN NavigationBarrier MAY_INCREASE;

# ---------- FOCUS MANAGEMENT ----------
DynamicInterfaceChange MAY_REQUIRE FocusManagement;

IF DialogOpens
THEN Focus SHOULD_MOVE_TO AppropriateDialogContext;

IF DialogCloses
THEN Focus SHOULD_RETURN_TO LogicalLocationWherePractical;

# ---------- SKIP NAVIGATION ----------
RepeatedNavigation MAY_HAVE SkipMechanism;

SkipLink MAY_ALLOW UserToBypassRepeatedBlocks;

# ---------- TOUCH TARGET ----------
TouchTarget :=
    InteractiveAreaAvailableForTouchInput;

SmallOrCrowdedTargets MAY_CREATE MotorBarrier;

AdequateTargetSizeAndSpacing SUPPORT TouchAccessibility;

# ---------- TIMING ----------
TimedInteraction MAY_CREATE AccessibilityBarrier;

WhereAppropriate User MAY_REQUIRE {
    ExtendTime,
    DisableTimeLimit,
    Pause
};

# ---------- UNDERSTANDABLE ----------
Understandable :=
    InformationAndInteractionAreComprehensibleAndPredictable;

Understandability MAY_REQUIRE {
    ClearLanguage,
    ConsistentNavigation,
    ClearLabels,
    HelpfulInstructions,
    ErrorExplanation
};

# ---------- LABEL ----------
FormControl SHOULD_HAVE Label;

Label IDENTIFIES PurposeOfInput;

VisibleLabel AND ProgrammaticLabel SHOULD_BE ConsistentWhereApplicable;

# ---------- INSTRUCTIONS ----------
InputRequirement SHOULD_BE CommunicatedBeforeOrDuringInput;

Placeholder SHOULD_NOT_BE SoleReplacementForPersistentLabelWhenLabelRequired;

# ---------- ERROR IDENTIFICATION ----------
InputError :=
    UserInputFailsValidationOrRequirement;

IF InputError
THEN ErrorFeedback SHOULD_IDENTIFY {
    Error,
    AffectedField,
    CorrectionWhereKnown
};

# ---------- ERROR PREVENTION ----------
HighImpactSubmission MAY_REQUIRE {
    Review,
    Confirmation,
    Reversibility
};

ErrorPrevention SUPPORTS UsersWithDiverseCapabilities;

# ---------- ROBUST ----------
Robust :=
    ContentAndInterfaceCanBeReliablyInterpretedByUserAgentsAndAssistiveTechnology;

Robustness MAY_REQUIRE {
    ValidSemantics,
    ProgrammaticRoles,
    States,
    Names,
    Relationships
};

# ---------- SEMANTIC HTML ----------
NativeSemanticElement PROVIDES BuiltInMeaningAndInteraction;

NativeSemantics SHOULD_BE PreferredWhenSuitable;

CustomControl MAY_REQUIRE AdditionalAccessibilityImplementation;

# ---------- ACCESSIBLE NAME ----------
AccessibleName :=
    ProgrammaticallyDeterminedNameOfInterfaceElement;

InteractiveElement SHOULD_HAVE AccessibleName;

AccessibleDescription MAY_PROVIDE AdditionalContext;

# ---------- ROLE ----------
AccessibilityRole :=
    ProgrammaticMeaningOfInterfaceElement;

Role MAY_BE NativeOrExplicit;

Role SHOULD_MATCH ActualInteractionBehaviour;

# ---------- STATE ----------
AccessibleState MAY_INCLUDE {
    Expanded,
    Selected,
    Checked,
    Disabled,
    Invalid,
    Busy
};

DynamicState SHOULD_BE ExposedProgrammaticallyWhereRequired;

# ---------- ARIA ----------
ARIA :=
    AccessibilitySemanticsForWebInterfaces;

ARIA MAY_DEFINE {
    Role,
    State,
    Property,
    Relationship
};

ARIA SHOULD_SUPPLEMENT RatherThanUnnecessarilyReplace NativeHTMLSemantics;

# ---------- SCREEN READER ----------
ScreenReader :=
    AssistiveTechnologyConvertingProgrammaticContentToSpeechOrBraille;

ScreenReader DEPENDS_ON {
    SemanticStructure,
    AccessibleName,
    ReadingOrder,
    StateInformation
};

# ---------- MAGNIFICATION ----------
ScreenMagnification SUPPORTS UsersRequiringEnlargedVisualPresentation;

ResponsiveReflow MAY_SUPPORT MagnifiedOrZoomedContent;

# ---------- VOICE CONTROL ----------
VoiceControl MAY_IDENTIFY InterfaceElementsByVisibleOrAccessibleName;

MismatchBetweenVisibleLabelAndAccessibleName MAY_CREATE InteractionDifficulty;

# ---------- COGNITIVE ACCESSIBILITY ----------
CognitiveAccessibility MAY_BE_SUPPORTED_BY {
    ClearLanguage,
    ConsistentLayout,
    ReducedUnnecessaryComplexity,
    ClearInstructions,
    ErrorTolerance,
    PredictableInteraction
};

# ---------- MOTION ----------
MotionOrAnimation MAY_AFFECT SomeUsers;

Interface MAY_PROVIDE ReducedMotionPreferenceSupport;

EssentialMotion SHOULD_BE DistinguishedFrom DecorativeMotion;

# ---------- RESPONSIVE / REFLOW ----------
Content SHOULD_REMAIN UsableAcrossSupportedViewportAndZoomConditions;

Reflow MAY_REDUCE NeedForTwoDimensionalScrolling;

# ---------- ACCESSIBILITY TESTING ----------
AccessibilityTesting MAY_INCLUDE {
    AutomatedTesting,
    KeyboardTesting,
    ScreenReaderTesting,
    VisualInspection,
    UserTesting
};

AutomatedTesting DOES_NOT_DETECT AllAccessibilityIssues;

# ---------- USER TESTING ----------
AccessibilityUserTest :=
    UserWithRelevantAccessNeed
    -> PerformTask
    -> ObserveBarriers
    -> RecordEvidence
    -> ImproveDesign;

UserEvidence MAY_REVEAL IssuesNotDetectedByAutomatedTools;

# ---------- ACCESSIBILITY ISSUE ----------
AccessibilityIssue :=
    {
        Barrier,
        AffectedUserCapability,
        AffectedTask,
        Severity,
        Evidence,
        Remediation
    };

IssueSeverity :=
    f(
        TaskImpact,
        Frequency,
        UserImpact,
        AvailabilityOfWorkaround
    );

# ---------- REMEDIATION ----------
AccessibilityRemediation :=
    IdentifyBarrier
    -> ModifyInterfaceOrContent
    -> Retest
    -> VerifyImprovement;

# ---------- INCLUSIVE DESIGN ----------
InclusiveDesign :=
    ConsiderDiverseUsers
    -> IdentifyExclusion
    -> DesignFlexibleInteraction
    -> TestAcrossCapabilities;

Accessibility IS_CORE_COMPONENT_OF InclusiveDesign;

# ---------- SEMANTIC REASONING ----------
IF RequiredInformationCannotBePerceivedByUser
THEN PerceptionBarrier := true;

IF RequiredActionCannotBePerformedByKeyboard
THEN KeyboardBarrier := true;

IF InteractiveElementHasNoAccessibleName
THEN AssistiveTechnologyBarrier := likely;

IF ErrorOccursWithoutIdentification
THEN ErrorRecoveryAccessibility := insufficient;

IF MeaningCommunicatedOnlyByColour
THEN AlternativeCueRequirement := true;

IF NativeSemanticElementAvailableAndSuitable
THEN NativeSemanticPreference := increase;

IF AutomatedTestPasses
THEN FullAccessibility IS_NOT_GUARANTEED;

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
    "digital accessibility" ~= "accessibility" WHEN context == computing;
    "web accessibility" ~= "digital interface accessibility" WHEN context == web;
    "assistive technology" ~= "AT" WHEN context == accessibility;
    "screen reader" ~= "screen-reading assistive technology";
    "accessible name" ~= "programmatic accessible label";
    "keyboard accessibility" ~= "keyboard operability";
    "focus indicator" ~= "visible focus";
    "text alternative" ~= "alternative text" WHEN context == non_text_content;
}

# ---------- QUERY FLOW ----------
QUERY(q) ->
    NORMALISE(q) ->
    IDENTIFY_USER_CAPABILITY(q) ->
    IDENTIFY_INTERFACE_OR_CONTENT(q) ->
    IDENTIFY_REQUIRED_TASK(q) ->
    IDENTIFY_BARRIER(q) ->
    IDENTIFY_ACCESSIBILITY_SUPPORT(q) ->
    IDENTIFY_ASSISTIVE_TECHNOLOGY(q) ->
    IDENTIFY_REMEDIATION(q) ->
    MAP_TO_ONTOLOGY(q) ->
    APPLY_REASONING(q) ->
    SCORE_CONFIDENCE(q) ->
    RETURN_RELEVANT_KNOWLEDGE;

# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
    weighted_mean(
        source_reliability,
        accessibility_evidence,
        user_test_evidence,
        semantic_consistency,
        contextual_relevance
    );

CONFIDENCE >= 0.90 => HIGH;
CONFIDENCE >= 0.70 AND < 0.90 => MODERATE;
CONFIDENCE < 0.70 => REVIEW;

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION {
    primary_entity: Accessibility;
    ontology: AccessibilityOntology;
    parse_entities: true;
    parse_relationships: true;
    preserve_relationship_direction: true;
    resolve_semantic_equivalence: true;
    execute_reasoning_rules: true;
    apply_confidence_weighting: true;
    preserve_provenance: true;
}

# ---------- UPDATE MODEL ----------
UPDATE_MODEL {
    new_barrier:
        identify_interface_or_content
        -> identify_affected_capability
        -> identify_task_impact
        -> classify_severity
        -> integrate;

    new_support:
        validate
        -> identify_barrier_addressed
        -> identify_user_benefit
        -> integrate;

    new_test_evidence:
        identify_test_method
        -> record_result
        -> identify_issue
        -> attach_provenance
        -> integrate;

    remediation_revision:
        update_interface
        -> retest
        -> update_issue_status
        -> recompute_confidence
        -> regenerate_flow_hash;

    conflict:
        preserve_provenance
        -> compare_accessibility_evidence
        -> adjust_confidence
        -> flag_review;
}

# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
    DOMAIN
    + SUBDOMAIN
    + ONTOLOGY
    + AccessibilityEntity
    + UserCapability
    + AccessibilityBarrier
    + AccessibilitySupport
    + AccessibilityTesting
    + InclusiveDesign
    + RELATIONSHIPS
    + SEMANTIC_REASONING
    + SEMANTIC_EQUIVALENCE
    + UPDATE_MODEL;

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT);

# ---------- TERMINAL ----------
AccessibilityOntology
    -> IdentifyUserCapabilities
    -> IdentifyRequiredTasks
    -> EvaluatePerceivability
    -> EvaluateOperability
    -> EvaluateUnderstandability
    -> EvaluateRobustness
    -> IdentifyAccessibilityBarriers
    -> ApplySemanticAndInteractionSupport
    -> TestWithToolsAndUsers
    -> RemediateIssues
    -> RetestAccessibility
    -> PreserveInclusiveAccess;

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ