All articles

Sep 7, 2026 · 1 min read

The Challenge Wasn't Automation. It Was Control.

We integrated VNC into our accessibility scanner so reviewers could remotely drive a live course and run per-slide WCAG checks, with zero local setup. Here is how and why.

Shaheer Tariq

Founder & CEO, Dotsnc Technologies

The challenge wasn't automation. It was control.

We recently integrated VNC into SA-checker, our accessibility scanning system for Articulate Storyline courses.

The problem

Storyline courses are highly interactive: slides, layers, triggers, timelines. Fully automated crawlers miss the real interaction paths, because a crawler does not know to click the thing a learner would click. But manual auditing meant local installs, screen readers, and heavy per-machine setup for every reviewer.

There was no centralized way to let a reviewer remotely drive the real course, run per-slide accessibility checks, and store structured WCAG results, all without installing anything locally.

So we built one.

How the reviewer flow works now

  1. Open a browser-based noVNC session. Nothing installed locally.
  2. Drive the live Chromium instance where the course is loaded, slide by slide.
  3. Click "Analyze Slide" on any interaction path.
  4. Checks run on that slide only: axe-core plus custom WCAG plus Storyline-specific rules.
  5. Results are stored in the backend, per slide. A re-run replaces just that slide's issues.

VNC became the remote-control layer for the scanning engine. Not for debugging. Not for monitoring. It was there to bridge automation with human validation.

The stack

Single-server Django on a VPS, Playwright, Xvfb, x11vnc + websockify + noVNC, and axe-core.

Before and after

Before: local installs, screen sharing or on-site setups, fragmented issue tracking.

After: remote auditing from any browser, zero local setup, centralized per-slide storage, faster review cycles.

Single deployment. Single server. Structured output.

The takeaway

Sometimes infrastructure decisions aren't about scale. They're about enabling the right workflow.

The win here was never raw automation. It was giving a human precise, remote control over the exact thing being tested, without the setup cost that used to make that impossible.

#accessibility#wcag#django#playwright#devops