Building PBIX A11y: A Lovable Experiment in Accessible Analytics

I’ve recently decided to have a go at vibe coding, using Lovable.

After building my first application to integrate project controls reporting, I started exploring what else might be possible. Naturally, I gravitated towards a problem I’ve been talking about for years, accessibility in Power BI.

So I asked a simple question:

Could I build a lightweight tool that checks accessibility in a .pbix file?

That question became PBIX A11y.

Why This Needed to Exist

Power BI is everywhere in the enterprise, but accessibility is still not treated as a first-class concern.

In practice, the same issues keep appearing. Low-contrast colour choices that look fine on one screen but disappear on another. Fonts that become unreadable as soon as the canvas scales up. Visuals with no meaningful titles. Reports that rely entirely on colour to convey meaning.

These are not isolated cases. They are patterns.

And because they’re patterns, people often ask me during accessibility sessions whether a single tool could catch them all. That question always comes from the same place: if the problems are predictable, surely there must be a way to surface them automatically.

But that’s exactly where the gap is. The real barrier isn’t awareness, most teams already know these issues matter. The barrier is visibility. Developers don’t have a fast, reliable way to see accessibility problems as they build, so the same issues slip through release after release.

The Idea: Make Accessibility Visible

Rather than creating another checklist or guidance document, I wanted to build something practical.

A tool where you can drop in a .pbix file and immediately understand what might be excluding part of your audience.

And one requirement quickly became non-negotiable: the file should never leave your machine.

Designing For Trust

If you work in a corporate environment, you’ll know that sharing .pbix files externally is rarely allowed.

So PBIX A11y takes a different approach.

The entire analysis runs in the browser. The file is opened, interpreted, and assessed locally. Nothing is uploaded, nothing is stored, and nothing can be reconstructed elsewhere.

If results are saved, they are limited to structured findings, never the underlying report.

This isn’t just a technical decision. It’s what makes the tool usable in the real world.

What the Tool Looks For

The checks focus on the issues that consistently affect usability:

1. Contrast and Colour Safety

Contrast is assessed using WCAG standards, ensuring that text remains readable against its actual background rather than an assumed one.

I tried to run a colour blindness safety check but could not make it work properly, so I decided to build a standalone tool where you can upload a screenshot, brand palette or chart and instantly see how it appears under seven types of colour blindness. It runs entirely in the browser and helps us rethink our colour choices

2. Alt Text Presence

Alt text is reviewed for presence and usefulness, because for screen reader users this is often the difference between access and exclusion.

On the top of this check I built the Alt Text Generator. This tool identifies which visuals need alt text, ignores decorative shapes and understands the fields used in each visual.

It then asks a few clarifying questions about the purpose of the insight before generating both static WCAG aligned alt text and dynamic DAX alt text for conditional formatting. This feature is still in test though.

3. Layout Density

Another check done on the audit is layout density, to identify overcrowded pages and overlapping visuals, recognising that accessibility is also about reducing cognitive load.

4. Titles, Structure and Font Size

Titles and structure are assessed to understand whether a report provides clear orientation, and font sizes are evaluated in context, scaling expectations based on the canvas size rather than applying a fixed rule.

Individually, these checks are simple. Together, they provide a meaningful picture of how accessible a report actually is.

5. Tab Order

This is a very last minute feature! Tab order is extremely important because not all users rely on a mouse. Correct tab order ensures effective navigation and also support screen readers.

The new checker reviews the actual focus sequence of all interactive elements on the page and flags anything that breaks a logical reading order (such as visuals that can’t be reached with the keyboard, gaps or jumps in the sequence, or decorative shapes that should not be focusable but are).

Beyond the Audits

Alongside the main report audit, I’ve also built a set of standalone tools that help creators design more accessible Power BI reports:

  • Cognitive Load Score
  • Theme Accessibility Audit
  • Minimum Font Size Calculator
  • Colour Contrast Checker (Luminance and APCA methods)
  • Colour Blindness Simulator
  • Alt Text Generator

From Score to Action

The tool produces a score, but that’s not the point.

The score helps open the conversation. It gives stakeholders something tangible to react to.

What matters more is what sits behind it, a breakdown of findings that can be directly translated into improvements within Power BI.

Accessibility becomes less abstract. Less subjective. More actionable.

A browser window shows an accessibility audit for a Power BI file named ProgrammeReporting.pbix using the PBIX A11y tool. The report displays an overall score of 68 out of 100, marked “Needs attention.” A breakdown lists all colour‑contrast checks passing, seven visuals failing alt‑text checks, and warnings for two visual titles and two axis titles. Clutter, page titles and font‑scaling checks all pass. Buttons at the top offer options to export a PDF, generate alt text, run a colour‑blindness simulator or re‑upload the file. A sidebar notes the report contains one page, eight elements, six visuals and eleven issues.
A list of accessibility issues is shown from a PBIX A11y audit, with each item marked as a fail for missing alt text. The entries identify visuals such as a matrix, a line chart, two slicers, a text box, a clustered column chart and a multi‑field card, all lacking alt text. Each issue includes a short explanation that screen‑reader users rely on alt text to understand non‑text visuals, along with guidance to add descriptions in Power BI through the Format pane under General → Alt text.
A set of four accessibility warnings is displayed in tan boxes. Two warnings note that the Y‑axis title is turned off on a line chart and a clustered column chart, explaining that axis titles help readers and screen‑reader users understand what the axis represents and advising to toggle the title on in the Format pane. The other two warnings highlight missing visual titles on a slicer and a multi‑field card, explaining that without a written title, sighted users have no label and screen readers announce nothing. Each warning includes a short description of the affected visual and guidance on how to add an appropriate title in Power BI.

The Limits of Automation

There is an important boundary here.

Automated checks are very effective at catching mechanical issues. The kind of problems that come from defaults, formatting decisions, or time pressure.

But they cannot tell you whether your report tells a clear story. They cannot assess whether your design supports decision-making. They cannot replicate how a user navigates and interprets your content.

That still requires human judgement.

PBIX A11y is not a replacement for that. It is the first pass that makes the rest of the work more focused.

Wrap-Up

Accessibility is often framed as compliance, but that framing misses the point.

At its core, accessibility is about usability. It is about ensuring that the insight you worked hard to create can actually be understood and used by the people it is intended for. And in that sense, accessibility is not an extra layer. It is part of good design.

This application is still an evolving experiment. There are areas I want to explore further, particularly around navigation and interaction patterns,

But even in its current format, the tool does something valuable. It makes accessibility visible.

If you’re curious, you can try it here: PBIX A11y

Just drop in a .pbix file and see what comes back.

The application is currently being tested, so if you have any feedback or suggestions, please reach out, I’d really value it.

Thank you for joining me on this journey. Until next time, let’s keep crafting accessible and ethical insights that make a difference!

A hexagonal yellow frame containing a black inner hexagon with a white network‑style icon in the centre. To the right, the text reads “SMART FRAMES PBIX A11y” with the tagline “Clarity. Accessibility. Impact.” in smaller type.

Leave a Reply

Discover more from Smart Frames UI

Subscribe now to keep reading and get access to the full archive.

Continue reading