# 3. Content Accessibility — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: content_accessibility.md — every feature, sub-feature, and rule covered

## Test Execution Policy

- Zero tolerance: any deviation from the documented behavior is a defect.
- Every failed test is logged with a Bug ID, the feature, the sub-feature, the expected vs actual result, and the severity; 100% of bugs are fixed before the group passes.
- 100% pass rate is required for the group to be marked complete.

## Coverage Matrix

| Feature | Sub-feature / Rule | Test IDs |
|---------|--------------------|----------|
| 3.1 Accessible Content Standards Enforcement | Standards definition: the standards applied to each content type | TC-SA-ACC-03-001 |
| 3.1 Accessible Content Standards Enforcement | Pre-publication check: an accessibility check run before publication | TC-SA-ACC-03-002 |
| 3.1 Accessible Content Standards Enforcement | Standards checklist: the checklist items a content item must satisfy | TC-SA-ACC-03-003 |
| 3.1 Accessible Content Standards Enforcement | Enforcement mode: advisory or blocking | TC-SA-ACC-03-004 |
| 3.1 Accessible Content Standards Enforcement | Standards by content type: the standards applied per content type | TC-SA-ACC-03-005 |
| 3.1 Accessible Content Standards Enforcement | Standards report: the compliance state per content item | TC-SA-ACC-03-006 |
| 3.1 Accessible Content Standards Enforcement | Rule: blocking mode prevents publication on failure | TC-SA-ACC-03-007 |
| 3.1 Accessible Content Standards Enforcement | Rule: advisory mode flags but allows publication | TC-SA-ACC-03-008 |
| 3.1 Accessible Content Standards Enforcement | Rule: a content type with no standards is not checked | TC-SA-ACC-03-009 |
| 3.1 Accessible Content Standards Enforcement | Rule: the check runs automatically on every publication attempt | TC-SA-ACC-03-010 |
| 3.1 Accessible Content Standards Enforcement | Rule: a re-check after fixes shows an updated state | TC-SA-ACC-03-011 |
| 3.1 Accessible Content Standards Enforcement | Rule: standards changes are not retroactive | TC-SA-ACC-03-012 |
| 3.1 Accessible Content Standards Enforcement | Rule: standards configuration changes are audit-logged | TC-SA-ACC-03-013 |
| 3.2 Alt-Text Management | Alt-text requirement: required or optional per content type and media role | TC-SA-ACC-03-014 |
| 3.2 Alt-Text Management | Alt-text entry: alt-text entered or edited per image and media item | TC-SA-ACC-03-015 |
| 3.2 Alt-Text Management | Alt-text review: alt-text reviewed for accuracy before publication | TC-SA-ACC-03-016 |
| 3.2 Alt-Text Management | Alt-text coverage: the share of media items with alt-text per content type | TC-SA-ACC-03-017 |
| 3.2 Alt-Text Management | Missing alt-text list: the media items missing required alt-text | TC-SA-ACC-03-018 |
| 3.2 Alt-Text Management | Bulk alt-text import: alt-text imported in bulk | TC-SA-ACC-03-019 |
| 3.2 Alt-Text Management | Rule: a content role requires alt-text; a decorative role does not | TC-SA-ACC-03-020 |
| 3.2 Alt-Text Management | Rule: alt-text is published only after review | TC-SA-ACC-03-021 |
| 3.2 Alt-Text Management | Rule: alt-text length is bounded | TC-SA-ACC-03-022 |
| 3.2 Alt-Text Management | Rule: a bulk import row with an invalid reference is skipped and reported | TC-SA-ACC-03-023 |
| 3.2 Alt-Text Management | Rule: a media item with no alt-text and a content role appears in the missing list | TC-SA-ACC-03-024 |
| 3.2 Alt-Text Management | Rule: re-entering alt-text resets the review state | TC-SA-ACC-03-025 |
| 3.2 Alt-Text Management | Rule: alt-text changes are audit-logged | TC-SA-ACC-03-026 |
| 3.3 Screen Reader Compatibility | Semantic structure check: a check for semantic headings and landmarks | TC-SA-ACC-03-027 |
| 3.3 Screen Reader Compatibility | ARIA label management: ARIA labels managed for interactive elements | TC-SA-ACC-03-028 |
| 3.3 Screen Reader Compatibility | Reading order definition: the reading order defined for complex layouts | TC-SA-ACC-03-029 |
| 3.3 Screen Reader Compatibility | Screen reader test checklist: the checklist for verifying output | TC-SA-ACC-03-030 |
| 3.3 Screen Reader Compatibility | Compatibility report: the compatibility state per content item | TC-SA-ACC-03-031 |
| 3.3 Screen Reader Compatibility | Rule: missing semantic headings are flagged | TC-SA-ACC-03-032 |
| 3.3 Screen Reader Compatibility | Rule: an element without an ARIA label is flagged | TC-SA-ACC-03-033 |
| 3.3 Screen Reader Compatibility | Rule: an invalid or circular reading order is rejected | TC-SA-ACC-03-034 |
| 3.3 Screen Reader Compatibility | Rule: an untested item is marked untested, not compliant | TC-SA-ACC-03-035 |
| 3.3 Screen Reader Compatibility | Rule: findings are resolved individually | TC-SA-ACC-03-036 |
| 3.3 Screen Reader Compatibility | Rule: all findings resolved and checklist complete marks compliant | TC-SA-ACC-03-037 |
| 3.3 Screen Reader Compatibility | Rule: compatibility changes are audit-logged | TC-SA-ACC-03-038 |
| 3.4 Accessible PDF Generation | Accessible PDF enablement: toggled on or off per export type | TC-SA-ACC-03-039 |
| 3.4 Accessible PDF Generation | Tagged PDF structure: tagged structure generated for semantics | TC-SA-ACC-03-040 |
| 3.4 Accessible PDF Generation | Document language tag: the language tag set per export | TC-SA-ACC-03-041 |
| 3.4 Accessible PDF Generation | PDF alt-text: alt-text carried into the PDF for images | TC-SA-ACC-03-042 |
| 3.4 Accessible PDF Generation | PDF outline: the outline generated from headings | TC-SA-ACC-03-043 |
| 3.4 Accessible PDF Generation | Accessible PDF validation: a validation run on generated PDFs | TC-SA-ACC-03-044 |
| 3.4 Accessible PDF Generation | Rule: applies only to enabled export types | TC-SA-ACC-03-045 |
| 3.4 Accessible PDF Generation | Rule: a missing language tag fails validation | TC-SA-ACC-03-046 |
| 3.4 Accessible PDF Generation | Rule: images without alt-text are flagged; the PDF is not accessible | TC-SA-ACC-03-047 |
| 3.4 Accessible PDF Generation | Rule: a document with no headings has no outline | TC-SA-ACC-03-048 |
| 3.4 Accessible PDF Generation | Rule: a validation failure prevents the accessible mark | TC-SA-ACC-03-049 |
| 3.4 Accessible PDF Generation | Rule: an untagged PDF fails validation | TC-SA-ACC-03-050 |
| 3.4 Accessible PDF Generation | Rule: configuration changes are audit-logged | TC-SA-ACC-03-051 |

### TC-SA-ACC-03-001 — Standards definition: the standards applied to each content type
**Type:** Positive
**Covers:** 3.1 → Standards definition: the accessible content standards applied to each content type
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, open the standards configuration and define the standards for a content type.
2. Save the configuration.
3. Observe the result and verify the full behavior: the standards are applied to that content type.
**Expected Result:** The standards definition works — the standards are applied, delivered exactly as documented.
**Priority:** Critical

### TC-SA-ACC-03-002 — Pre-publication check: an accessibility check run before publication
**Type:** Positive
**Covers:** 3.1 → Pre-publication check: an accessibility check run on content before publication
**Preconditions:** A Super Admin account is active; standards are defined for a content type.
**Steps:**
1. As a Super Admin, attempt to publish a content item.
2. Observe the result and verify the full behavior: the accessibility check runs before publication.
**Expected Result:** The pre-publication check runs — it executes before publication, delivered exactly as documented.
**Priority:** Critical

### TC-SA-ACC-03-003 — Standards checklist: the checklist items a content item must satisfy
**Type:** Positive
**Covers:** 3.1 → Standards checklist: the checklist items a content item must satisfy
**Preconditions:** A Super Admin account is active; standards are defined.
**Steps:**
1. As a Super Admin, open the standards checklist for a content type.
2. Observe the result and verify the full behavior: the checklist items are shown.
**Expected Result:** The checklist is shown — the items are visible, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-004 — Enforcement mode: advisory or blocking
**Type:** Positive
**Covers:** 3.1 → Enforcement mode: advisory (flag only) or blocking (publication prevented)
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, set the enforcement mode to blocking for a content type and save.
2. Attempt to publish a failing content item.
3. Observe the result and verify the full behavior: publication is prevented in blocking mode.
**Expected Result:** The enforcement mode works — blocking prevents publication, delivered exactly as documented.
**Priority:** Critical

### TC-SA-ACC-03-005 — Standards by content type: the standards applied per content type
**Type:** Positive
**Covers:** 3.1 → Standards by content type: the standards applied per content type
**Preconditions:** A Super Admin account is active; standards differ per content type.
**Steps:**
1. As a Super Admin, open the standards by content type view.
2. Observe the result and verify the full behavior: the standards are shown per content type.
**Expected Result:** The standards by type are shown — the per-type standards are visible, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-006 — Standards report: the compliance state per content item
**Type:** Positive
**Covers:** 3.1 → Standards report: the standards compliance state per content item
**Preconditions:** A Super Admin account is active; content items have various compliance states.
**Steps:**
1. As a Super Admin, open the standards report.
2. Observe the result and verify the full behavior: the compliance state is shown per content item.
**Expected Result:** The standards report is shown — the state per item is visible, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-007 — Rule: blocking mode prevents publication on failure
**Type:** Negative
**Covers:** 3.1 → Rule: in blocking mode, a content item failing the standards cannot be published until the failures are resolved
**Preconditions:** A Super Admin account is active; a content item fails the standards; blocking mode is on.
**Steps:**
1. As a Super Admin, attempt to publish the failing content item.
2. Observe the result and verify the full behavior: publication is blocked with the failures listed.
**Expected Result:** Publication is blocked — the failures must be resolved first, delivered exactly as documented.
**Priority:** Critical

### TC-SA-ACC-03-008 — Rule: advisory mode flags but allows publication
**Type:** Positive
**Covers:** 3.1 → Rule: in advisory mode, a failing content item is flagged but can still be published
**Preconditions:** A Super Admin account is active; a content item fails the standards; advisory mode is on.
**Steps:**
1. As a Super Admin, publish the failing content item.
2. Observe the result and verify the full behavior: the item is published and flagged.
**Expected Result:** The item is published and flagged — advisory mode allows publication, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-009 — Rule: a content type with no standards is not checked
**Type:** Positive
**Covers:** 3.1 → Rule: a content type with no standards defined is not checked; it is marked as not subject to standards
**Preconditions:** A Super Admin account is active; a content type has no standards.
**Steps:**
1. As a Super Admin, publish a content item of that type.
2. Observe the result and verify the full behavior: no accessibility check runs and the item is marked not subject to standards.
**Expected Result:** The item is not checked — no standards means no check, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-010 — Rule: the check runs automatically on every publication attempt
**Type:** Positive
**Covers:** 3.1 → Rule: the pre-publication check runs automatically on every publication attempt
**Preconditions:** A Super Admin account is active; standards are defined.
**Steps:**
1. As a Super Admin, publish a content item twice.
2. Observe the result and verify the full behavior: the check runs on both publication attempts.
**Expected Result:** The check runs automatically — it executes on every attempt, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-011 — Rule: a re-check after fixes shows an updated state
**Type:** Positive
**Covers:** 3.1 → Rule: a content item re-checked after fixes shows an updated compliance state
**Preconditions:** A Super Admin account is active; a content item previously failed.
**Steps:**
1. As a Super Admin, resolve the failures and re-publish.
2. Open the standards report.
3. Observe the result and verify the full behavior: the compliance state is updated to passing.
**Expected Result:** The state is updated — the re-check reflects the fixes, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-012 — Rule: standards changes are not retroactive
**Type:** Positive
**Covers:** 3.1 → Rule: standards changes apply to publication attempts after the change; already-published content is not retroactively blocked
**Preconditions:** A Super Admin account is active; a content item is already published.
**Steps:**
1. As a Super Admin, add a new standard after publication.
2. Check the already-published item.
3. Observe the result and verify the full behavior: the published item is not retroactively blocked.
**Expected Result:** No retroactive blocking — the published item remains available, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-013 — Rule: standards configuration changes are audit-logged
**Type:** Positive
**Covers:** 3.1 → Audit logging of accessible content standards enforcement
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, change the standards configuration and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the change is recorded with the actor and timestamp.
**Expected Result:** The configuration change is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-014 — Alt-text requirement: required or optional per content type and media role
**Type:** Positive
**Covers:** 3.2 → Alt-text requirement: alt-text required or optional per content type and media role
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, set alt-text as required for informative media in a content type and save.
2. Attempt to publish an informative image without alt-text.
3. Observe the result and verify the full behavior: the requirement is enforced.
**Expected Result:** The requirement is enforced — informative media requires alt-text, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-015 — Alt-text entry: alt-text entered or edited per image and media item
**Type:** Positive
**Covers:** 3.2 → Alt-text entry: alt-text entered or edited per image and media item
**Preconditions:** A Super Admin account is active; a media item exists.
**Steps:**
1. As a Super Admin, open the media item and enter alt-text.
2. Save the alt-text.
3. Observe the result and verify the full behavior: the alt-text is saved for the item.
**Expected Result:** The alt-text entry works — the alt-text is saved, delivered exactly as documented.
**Priority:** Critical

### TC-SA-ACC-03-016 — Alt-text review: alt-text reviewed for accuracy before publication
**Type:** Positive
**Covers:** 3.2 → Alt-text review: alt-text reviewed for accuracy before publication
**Preconditions:** A Super Admin account is active; alt-text is entered.
**Steps:**
1. As a Super Admin, review the alt-text and mark the review complete.
2. Observe the result and verify the full behavior: the alt-text state shows reviewed.
**Expected Result:** The review works — the alt-text is marked reviewed, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-017 — Alt-text coverage: the share of media items with alt-text per content type
**Type:** Positive
**Covers:** 3.2 → Alt-text coverage: the share of media items with alt-text per content type
**Preconditions:** A Super Admin account is active; media items have varying alt-text states.
**Steps:**
1. As a Super Admin, open the alt-text coverage view.
2. Observe the result and verify the full behavior: the share with alt-text is shown per content type.
**Expected Result:** The coverage is shown — the share per type is visible, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-018 — Missing alt-text list: the media items missing required alt-text
**Type:** Positive
**Covers:** 3.2 → Missing alt-text list: the media items missing required alt-text
**Preconditions:** A Super Admin account is active; some media items lack required alt-text.
**Steps:**
1. As a Super Admin, open the missing alt-text list.
2. Observe the result and verify the full behavior: the items missing required alt-text are listed.
**Expected Result:** The missing list is shown — the items are listed, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-019 — Bulk alt-text import: alt-text imported in bulk
**Type:** Positive
**Covers:** 3.2 → Bulk alt-text import: alt-text imported in bulk for a set of media items
**Preconditions:** A Super Admin account is active; a valid bulk import file is ready.
**Steps:**
1. As a Super Admin, import the bulk alt-text file.
2. Open the alt-text coverage.
3. Observe the result and verify the full behavior: the alt-text is applied to the referenced items.
**Expected Result:** The bulk import works — the alt-text is applied, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-020 — Rule: a content role requires alt-text; a decorative role does not
**Type:** Positive
**Covers:** 3.2 → Rule: a media item with a content role (informative) requires alt-text; a decorative role does not
**Preconditions:** A Super Admin account is active; an informative and a decorative image exist.
**Steps:**
1. As a Super Admin, attempt to publish both images without alt-text.
2. Observe the result and verify the full behavior: the informative image is blocked; the decorative image is allowed.
**Expected Result:** The role-based requirement works — informative requires alt-text, decorative does not, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-021 — Rule: alt-text is published only after review
**Type:** Negative
**Covers:** 3.2 → Rule: alt-text is published only after review; an unreviewed alt-text is not learner-visible
**Preconditions:** A Super Admin account is active; alt-text is entered but not reviewed.
**Steps:**
1. As a learner, view the media item.
2. Observe the result and verify the full behavior: the unreviewed alt-text is not shown.
**Expected Result:** The unreviewed alt-text is hidden — it is not learner-visible, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-022 — Rule: alt-text length is bounded
**Type:** Negative
**Covers:** 3.2 → Rule: alt-text length is bounded; an over-length alt-text is rejected with a validation message
**Preconditions:** A Super Admin account is active; a media item exists.
**Steps:**
1. As a Super Admin, attempt to save an over-length alt-text.
2. Observe the result and verify the full behavior: the save is rejected with a validation message.
**Expected Result:** The over-length alt-text is rejected — the bound is enforced, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-023 — Rule: a bulk import row with an invalid reference is skipped and reported
**Type:** Negative
**Covers:** 3.2 → Rule: a bulk import row with a missing or invalid media reference is skipped and reported
**Preconditions:** A Super Admin account is active; a bulk import file has an invalid reference row.
**Steps:**
1. As a Super Admin, import the file.
2. Observe the result and verify the full behavior: the invalid row is skipped and reported; valid rows are applied.
**Expected Result:** The invalid row is skipped and reported — valid rows are applied, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-024 — Rule: a media item with no alt-text and a content role appears in the missing list
**Type:** Positive
**Covers:** 3.2 → Rule: a media item with no alt-text and a content role appears in the missing alt-text list
**Preconditions:** A Super Admin account is active; an informative image has no alt-text.
**Steps:**
1. As a Super Admin, open the missing alt-text list.
2. Observe the result and verify the full behavior: the informative image is listed.
**Expected Result:** The image is listed — it appears in the missing list, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-025 — Rule: re-entering alt-text resets the review state
**Type:** Positive
**Covers:** 3.2 → Rule: re-entering alt-text for a reviewed item resets its review state to unreviewed
**Preconditions:** A Super Admin account is active; a reviewed alt-text exists.
**Steps:**
1. As a Super Admin, edit the reviewed alt-text and save.
2. Check the review state.
3. Observe the result and verify the full behavior: the state is reset to unreviewed.
**Expected Result:** The state is reset — the edit requires re-review, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-026 — Rule: alt-text changes are audit-logged
**Type:** Positive
**Covers:** 3.2 → Audit logging of alt-text management
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, save an alt-text change.
2. Open the audit log.
3. Observe the result and verify the full behavior: the change is recorded with the actor and timestamp.
**Expected Result:** The alt-text change is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-027 — Semantic structure check: a check for semantic headings and landmarks
**Type:** Positive
**Covers:** 3.3 → Semantic structure check: a check that content uses semantic headings and landmarks
**Preconditions:** A Super Admin account is active; a content item exists.
**Steps:**
1. As a Super Admin, run the semantic structure check for the content item.
2. Observe the result and verify the full behavior: the check reports the semantic headings and landmarks state.
**Expected Result:** The check works — the semantic state is reported, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-028 — ARIA label management: ARIA labels managed for interactive elements
**Type:** Positive
**Covers:** 3.3 → ARIA label management: ARIA labels managed for interactive elements
**Preconditions:** A Super Admin account is active; a content item has interactive elements.
**Steps:**
1. As a Super Admin, add an ARIA label to an interactive element and save.
2. Observe the result and verify the full behavior: the ARIA label is applied to the element.
**Expected Result:** The ARIA label works — it is applied to the element, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-029 — Reading order definition: the reading order defined for complex layouts
**Type:** Positive
**Covers:** 3.3 → Reading order definition: the reading order defined for complex layouts
**Preconditions:** A Super Admin account is active; a content item has a complex layout.
**Steps:**
1. As a Super Admin, define the reading order for the layout and save.
2. Observe the result and verify the full behavior: the reading order is applied.
**Expected Result:** The reading order works — it is applied to the layout, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-030 — Screen reader test checklist: the checklist for verifying output
**Type:** Positive
**Covers:** 3.3 → Screen reader test checklist: the checklist for verifying screen reader output
**Preconditions:** A Super Admin account is active; a content item exists.
**Steps:**
1. As a Super Admin, open the screen reader test checklist.
2. Complete the checklist items.
3. Observe the result and verify the full behavior: the checklist completion is recorded.
**Expected Result:** The checklist works — the completion is recorded, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-031 — Compatibility report: the compatibility state per content item
**Type:** Positive
**Covers:** 3.3 → Compatibility report: the screen reader compatibility state per content item
**Preconditions:** A Super Admin account is active; content items have various compatibility states.
**Steps:**
1. As a Super Admin, open the compatibility report.
2. Observe the result and verify the full behavior: the compatibility state is shown per content item.
**Expected Result:** The report is shown — the state per item is visible, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-032 — Rule: missing semantic headings are flagged
**Type:** Negative
**Covers:** 3.3 → Rule: a content item with missing semantic headings is flagged in the compatibility report
**Preconditions:** A Super Admin account is active; a content item lacks semantic headings.
**Steps:**
1. As a Super Admin, run the semantic structure check.
2. Open the compatibility report.
3. Observe the result and verify the full behavior: the missing headings are flagged.
**Expected Result:** The missing headings are flagged — the report shows the finding, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-033 — Rule: an element without an ARIA label is flagged
**Type:** Negative
**Covers:** 3.3 → Rule: an interactive element without an ARIA label is flagged; the label is required for publication in blocking mode
**Preconditions:** A Super Admin account is active; an interactive element has no ARIA label.
**Steps:**
1. As a Super Admin, run the compatibility check.
2. Observe the result and verify the full behavior: the element is flagged.
**Expected Result:** The element is flagged — the missing label is reported, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-034 — Rule: an invalid or circular reading order is rejected
**Type:** Negative
**Covers:** 3.3 → Rule: the reading order must be a valid sequence; an invalid or circular order is rejected
**Preconditions:** A Super Admin account is active; a content item has a complex layout.
**Steps:**
1. As a Super Admin, attempt to save a circular reading order.
2. Observe the result and verify the full behavior: the save is rejected with a validation message.
**Expected Result:** The circular order is rejected — a valid sequence is required, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-035 — Rule: an untested item is marked untested, not compliant
**Type:** Positive
**Covers:** 3.3 → Rule: a content item not tested against the checklist is marked as untested, not compliant
**Preconditions:** A Super Admin account is active; a content item has not been tested.
**Steps:**
1. As a Super Admin, open the compatibility report for the item.
2. Observe the result and verify the full behavior: the item is marked untested, not compliant.
**Expected Result:** The item is marked untested — it is not marked compliant, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-036 — Rule: findings are resolved individually
**Type:** Positive
**Covers:** 3.3 → Rule: compatibility findings are resolved individually; the report updates per finding
**Preconditions:** A Super Admin account is active; a content item has multiple findings.
**Steps:**
1. As a Super Admin, resolve one finding.
2. Open the compatibility report.
3. Observe the result and verify the full behavior: the report updates for that finding only.
**Expected Result:** The report updates per finding — the resolved finding is cleared, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-037 — Rule: all findings resolved and checklist complete marks compliant
**Type:** Positive
**Covers:** 3.3 → Rule: a content item with all findings resolved and the checklist complete is marked compliant
**Preconditions:** A Super Admin account is active; a content item has all findings resolved and the checklist complete.
**Steps:**
1. As a Super Admin, open the compatibility report.
2. Observe the result and verify the full behavior: the item is marked compliant.
**Expected Result:** The item is marked compliant — all findings resolved and checklist complete, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-038 — Rule: compatibility changes are audit-logged
**Type:** Positive
**Covers:** 3.3 → Audit logging of screen reader compatibility management
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, resolve a compatibility finding.
2. Open the audit log.
3. Observe the result and verify the full behavior: the change is recorded with the actor and timestamp.
**Expected Result:** The compatibility change is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-039 — Accessible PDF enablement: toggled on or off per export type
**Type:** Positive
**Covers:** 3.4 → Accessible PDF enablement: accessible PDF generation toggled on or off per export type
**Preconditions:** A Super Admin account is active.
**Steps:**
1. As a Super Admin, enable accessible PDF generation for worksheets and save.
2. Export a worksheet.
3. Observe the result and verify the full behavior: the exported PDF is generated as accessible.
**Expected Result:** The enablement works — the enabled export type produces an accessible PDF, delivered exactly as documented.
**Priority:** Critical

### TC-SA-ACC-03-040 — Tagged PDF structure: tagged structure generated for semantics
**Type:** Positive
**Covers:** 3.4 → Tagged PDF structure: tagged PDF structure generated for document semantics
**Preconditions:** A Super Admin account is active; accessible PDF generation is enabled.
**Steps:**
1. As a Super Admin, export a document.
2. Inspect the generated PDF structure.
3. Observe the result and verify the full behavior: the PDF has a tagged structure.
**Expected Result:** The tagged structure is generated — the PDF is tagged, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-041 — Document language tag: the language tag set per export
**Type:** Positive
**Covers:** 3.4 → Document language tag: the document language tag set per export
**Preconditions:** A Super Admin account is active; accessible PDF generation is enabled.
**Steps:**
1. As a Super Admin, set the document language tag and export a document.
2. Inspect the generated PDF.
3. Observe the result and verify the full behavior: the PDF carries the language tag.
**Expected Result:** The language tag is applied — the PDF carries it, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-042 — PDF alt-text: alt-text carried into the PDF for images
**Type:** Positive
**Covers:** 3.4 → PDF alt-text: alt-text carried into the PDF for embedded images
**Preconditions:** A Super Admin account is active; a document has an image with alt-text.
**Steps:**
1. As a Super Admin, export the document.
2. Inspect the image in the generated PDF.
3. Observe the result and verify the full behavior: the image carries the alt-text in the PDF.
**Expected Result:** The alt-text is carried — the PDF image has the alt-text, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-043 — PDF outline: the outline generated from headings
**Type:** Positive
**Covers:** 3.4 → PDF outline: the document outline (bookmarks) generated from headings
**Preconditions:** A Super Admin account is active; a document has headings.
**Steps:**
1. As a Super Admin, export the document.
2. Open the PDF outline.
3. Observe the result and verify the full behavior: the outline is generated from the headings.
**Expected Result:** The outline is generated — the bookmarks reflect the headings, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-044 — Accessible PDF validation: a validation run on generated PDFs
**Type:** Positive
**Covers:** 3.4 → Accessible PDF validation: a validation run on generated PDFs
**Preconditions:** A Super Admin account is active; an accessible PDF is generated.
**Steps:**
1. As a Super Admin, run the accessible PDF validation on the generated PDF.
2. Observe the result and verify the full behavior: the validation reports the accessibility state.
**Expected Result:** The validation works — the accessibility state is reported, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-045 — Rule: applies only to enabled export types
**Type:** Negative
**Covers:** 3.4 → Rule: accessible PDF generation applies only to enabled export types; other exports produce standard PDFs
**Preconditions:** A Super Admin account is active; accessible PDF is enabled for worksheets only.
**Steps:**
1. As a Super Admin, export a report (a non-enabled type).
2. Inspect the generated PDF.
3. Observe the result and verify the full behavior: the PDF is a standard, non-accessible PDF.
**Expected Result:** The non-enabled type produces a standard PDF — the enablement scope is enforced, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-046 — Rule: a missing language tag fails validation
**Type:** Negative
**Covers:** 3.4 → Rule: a generated accessible PDF must include a document language tag; a missing tag fails validation
**Preconditions:** A Super Admin account is active; a PDF is generated without a language tag.
**Steps:**
1. As a Super Admin, run the validation on the PDF.
2. Observe the result and verify the full behavior: the validation fails due to the missing tag.
**Expected Result:** The validation fails — the missing tag is reported, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-047 — Rule: images without alt-text are flagged; the PDF is not accessible
**Type:** Negative
**Covers:** 3.4 → Rule: embedded images without alt-text are flagged in the validation; the PDF is not marked accessible
**Preconditions:** A Super Admin account is active; a PDF has an image without alt-text.
**Steps:**
1. As a Super Admin, run the validation on the PDF.
2. Observe the result and verify the full behavior: the image is flagged and the PDF is not marked accessible.
**Expected Result:** The image is flagged — the PDF is not marked accessible, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-048 — Rule: a document with no headings has no outline
**Type:** Positive
**Covers:** 3.4 → Rule: the PDF outline is generated from semantic headings; a document with no headings has no outline
**Preconditions:** A Super Admin account is active; a document has no headings.
**Steps:**
1. As a Super Admin, export the document.
2. Open the PDF outline.
3. Observe the result and verify the full behavior: no outline is generated.
**Expected Result:** No outline is generated — no headings means no outline, delivered exactly as documented.
**Priority:** Medium

### TC-SA-ACC-03-049 — Rule: a validation failure prevents the accessible mark
**Type:** Negative
**Covers:** 3.4 → Rule: a validation failure prevents the PDF from being marked accessible; it can be regenerated after fixes
**Preconditions:** A Super Admin account is active; a PDF fails validation.
**Steps:**
1. As a Super Admin, check the PDF state after a failed validation.
2. Observe the result and verify the full behavior: the PDF is not marked accessible.
**Expected Result:** The PDF is not marked accessible — the failure prevents the mark, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-050 — Rule: an untagged PDF fails validation
**Type:** Negative
**Covers:** 3.4 → Rule: tagged PDF structure is required for an accessible PDF; an untagged PDF fails validation
**Preconditions:** A Super Admin account is active; an untagged PDF exists.
**Steps:**
1. As a Super Admin, run the validation on the untagged PDF.
2. Observe the result and verify the full behavior: the validation fails due to the missing tags.
**Expected Result:** The validation fails — the untagged PDF is not accessible, delivered exactly as documented.
**Priority:** High

### TC-SA-ACC-03-051 — Rule: configuration changes are audit-logged
**Type:** Positive
**Covers:** 3.4 → Audit logging of accessible PDF generation configuration
**Preconditions:** A Super Admin account is active; the audit log is accessible.
**Steps:**
1. As a Super Admin, change the accessible PDF configuration and save.
2. Open the audit log.
3. Observe the result and verify the full behavior: the change is recorded with the actor and timestamp.
**Expected Result:** The configuration change is audit-logged — the actor and timestamp are recorded, delivered exactly as documented.
**Priority:** High
