Case

cjira

In use

An accessible terminal client for Jira: keyboard- and braille-first, fully operable without a mouse.

What & why

Jira's web interface leans heavily on mouse, colour and visual layout — for anyone working with a screen reader or braille display that is a wall. cjira is a command-line and TUI client for Jira Data Center designed the other way around: line-oriented output, the identifier first, no meaning through colour alone, no popups. Searching with JQL, boards, epics, status transitions, comments, assigning, creating and editing — the daily Jira work, entirely from the keyboard.

Accessibility here is not a layer added afterwards but the very design starting point — exactly what we mean by building accessibly. And it cuts both ways: the same flat, pipeable output that lets a braille display follow along exactly also makes the client faster than the web interface with a screen.

Approach

  1. The accessibility model captured as a spec: line-oriented, identifier first, no colour-as-meaning, no popups.
  2. Reading and searching first (boards, epics, JQL), and only then the write actions: transitions, comments, assigning, creating, editing, archiving.
  3. A full-screen TUI with a line mode, so screen reader and braille display follow the cursor exactly.
  4. Built on the Jira REST API; works against any Jira Data Center installation.

Technology

  • Python
  • Jira REST API v2
  • TUI + line mode
  • Keyboard- & braille-first

Images & demo

cjira mine
Active sprint (Sprint 12):
WEB-214  [In Progress]  Story: Raise the secondary buttons' contrast to 4.5:1 (3 pts)
WEB-198  [In Review]  Bug: Status message not announced by NVDA (2 pts)

Backlog:
WEB-209  [To Do]  Task: Fix the focus order in the order form
WEB-187  [To Do]  Story: Skip link to the main content (1 pts)
Real cjira output in the accessible line mode, here over example data: identifier first, status as text in brackets, story points spelled out — a braille display reads this line by line.

The full TUI of cjira — an Alpine-style interface that shows one screen at a time and parks the cursor on the selected line, so screen reader and braille display follow line by line. Real screens, here over example data.

  1. CJIRA 0.1   ISSUE INDEX   My issues                                            Issue 1 of 5
    Active sprint (Sprint 12):
    WEB-214  [In Progress]  Story: Raise the secondary buttons' contrast to 4.5:1 (3 pts)
    WEB-198  [In Review]  Bug: Status message not announced by NVDA (2 pts)
    Backlog:
    WEB-209  [To Do]  Task: Fix the focus order in the order form
    WEB-231  [To Do]  Story: Link form errors with aria-describedby (2 pts)
    WEB-187  [To Do]  Story: Skip link to the main content (1 pts)
    
    
    
    ? Help       Enter Open   N Next       M Menu       F Filter     C Create     / Search
    O OtherCmds  . Open       P Prev       S Sort       D ShowDone   E Epics      Q Quit
  2. CJIRA 0.1   VIEW ISSUE   WEB-214                                               Issue 1 of 5
    Key          : WEB-214
    Summary      : Raise the secondary buttons' contrast to 4.5:1
    Type         : Story
    Status       : In Progress
    Sprint       : Sprint 12 (active)
    Priority     : Medium
    Story Points : 3
    Assignee     : Sam Bakker
    Updated      : 2026-07-14T09:30:00.000+0200
    Labels       : accessibility, wcag-aa
    URL          : https://jira.example.local/browse/WEB-214
    
    Description:
    The secondary buttons hit 3.1:1 against the background; WCAG 1.4.11 asks 4.5:1 for text
    Proposal: the ink tint one step darker in both themes.
    
    Comments (1):
    
    [1] Robin de Vries  2026-07-14 10:05
    Tested with NVDA and a braille display — correct now.
    
    
    
    ? Help        Enter Edit    N NextMsg     I Index       H Headers     T Transition
    O OtherCmds   . Edit        P PrevMsg     , Back        C Comment     A Assign
  3. CJIRA 0.1   MAIN MENU                                                                1 of 8
    M  My issues      Issues assigned to you
    B  Boards…        Pick which board to work with
    V  Board 480      This board's issues
    A  Active sprint  Issues in the current sprint
    L  Backlog        Issues not yet in a sprint
    E  Epics          Browse epics and their stories
    S  Setup          Change cjira's settings
    /  Search…        Find issues with a JQL query
    
    
    ? Help       Enter Open   P Prev
    O OtherCmds  N Next       Q Quit