Class ScreenReader

All Implemented Interfaces:
DateChangeListener, StudentChangeListener, ImageObserver, MenuContainer, Serializable, Accessible

Screen reader proficiency assessment page for desktop/laptop environments.

Evaluates student competency with screen reading software (JAWS, NVDA, Narrator, VoiceOver macOS) across 28 standardized skills organized into 4 progressive competency phases:

  • Phase 1 (P1_1–P1_6): Fundamental Navigation and Interaction
    • Basic keyboard navigation (Tab, arrow keys, application switching)
    • Reading and interpreting control labels and text content
    • Activating controls (buttons, links, checkboxes) via keyboard
    • Form entry (text fields, combo boxes, radio buttons)
    • Table navigation (row/column movement, header announcement)
    • Heading navigation (H key, heading list, semantic structure)
  • Phase 2 (P2_1–P2_4): Web and Document Element Navigation
    • Link navigation and link list usage
    • List navigation (ordered, unordered, nested lists)
    • Image handling (alt text, long descriptions, graphics navigation)
    • Annotation and metadata awareness (ARIA labels, landmarks)
  • Phase 3 (P3_1–P3_11): Advanced Document Structures and Customization
    • Document structure navigation (sections, articles, landmarks)
    • Style and formatting awareness (bold, italic, font changes)
    • Advanced table navigation (complex tables, merged cells, formulas)
    • Chart and graph interpretation with screen reader feedback
    • Advanced keyboard shortcuts and quick navigation commands
    • Scripting usage (JAWS scripts, NVDA add-ons)
    • Third-party application integration (Office, Adobe, IDEs)
    • Multimedia content handling (audio descriptions, video captions)
    • Braille display usage and synchronization
    • Braille table switching (Grade 1, Grade 2, computer braille)
    • Configuration and customization (speech rate, verbosity, sounds)
  • Phase 4 (P4_1–P4_7): Efficiency, Troubleshooting, and Integration
    • Performance optimization (adjusting verbosity, quick navigation mastery)
    • Error recovery strategies (finding lost focus, restarting speech)
    • Integration across multiple assistive technologies (magnification, braille, OCR)
    • Accessibility API awareness (UI Automation, MSAA, IAccessible2)
    • Settings management (profiles, application-specific configurations)
    • Profile creation and switching for different workflows/applications
    • Accessing vendor support resources and community forums

Data Persistence and Report Generation:

  • Scores captured via PhaseScoreField components (integer 0–4 typical)
  • Persisted to normalized schema via Database.insertAssessmentResults(int, int, java.lang.String[], int[])
  • JSON export: StudentDataFiles/<student>/Sessions/ScreenReader/ScreenReader-<sessionId>-<timestamp>.json
  • Phase-grouped time-series PNG plots: plots/ScreenReader-<sessionId>-<date>-P<N>.png (4 phase groups)
  • Markdown report: reports/ScreenReader-<sessionId>-<date>.md with relative image links
  • HTML report: reports/ScreenReader-<sessionId>-<date>.html with inline styles and legends

The shared JLineGraph visualizes recent session trends with phase-based grouping. Implements DateChangeListener and StudentChangeListener for dynamic refresh when global selections change.

See Also:
  • Constructor Details

    • ScreenReader

      public ScreenReader(String studentName, LocalDate date, JLineGraph lineGraph)
      Construct a ScreenReader page bound to a student and date. The provided JLineGraph is used to render recent assessment results.
      Parameters:
      studentName - the student display name (may be null to indicate no selection)
      date - the date associated with the session
      lineGraph - chart component used to display recent results
  • Method Details