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
Download Code
Copy to Clipboard