Skip to main content

Introduction

Conalyz is a command-line tool that analyses Flutter apps for accessibility violations — both from source code and on a live running device, capturing what is actually rendered on screen, not just what the code says.

It checks every screen you point it at and produces a detailed HTML and JSON report covering:

  • Touch targets — interactive elements too small for reliable tapping
  • Colour contrast — text that fails WCAG AA (4.5:1 ratio)
  • Focus traversal — elements unreachable by keyboard or switch access
  • Labels — interactive elements with no accessible name
  • Vague labels — button text like "Click here" or "Read more"
  • Disabled elements — disabled controls with no hint explaining why
  • Slider values — sliders with no announced current value

How it works​

Run conalyz from your Flutter project directory. For runtime analysis, Conalyz starts the app for you, connects automatically, and runs the full set of checks — without any test code or instrumentation in the app itself.

There are five modes:

  • Static mode — analyses your Flutter source code directly, no device needed. The same engine available on pub.dev, now built in.
  • Capture mode — you navigate the app normally while Conalyz records every tap, swipe, and text input, then generates a ready-to-use conalyz.yaml (Android only)
  • Manual mode — you navigate the app yourself and name each screen at the prompt; produces an HTML and JSON report
  • Automated mode — Conalyz drives the app automatically using a conalyz.yaml config file and produces an HTML and JSON report
  • Lab mode — a live interactive window where you experience the app as users with disabilities do: colour-blind and low-vision filters, text scaling, and a screen-reader walkthrough. Works on your Flutter app or any app on a connected device.

Relationship to Conalyz Static​

The Conalyz static analyzer (available on pub.dev) analyses Flutter source code at the widget-tree level — it catches violations in code without running the app. Conalyz Runtime complements it by checking what is actually rendered: pixel-level contrast, focus order on a real device, and accessibility of dynamically composed screens that only exist at runtime.

The two tools are most powerful when used together.