Daniel Jang.
Case Study

Making 300+ certificates accessible — then making them automatic.

Power AutomateCanvasMicrosoft FormsSharePointWCAGHTML email

The problem wasn't speed. It was access.

Faculty professional development courses at my institution issue certificates of completion — documentation that matters for records, review cycles, and professional growth. But the certificates being sent weren't accessible. A certificate delivered as a flat image or an untagged PDF is invisible to a screen reader: for some of the very faculty completing accessibility training, their own certificate was a document they couldn't read.

There was a second problem stacked on top: every certificate was created and sent manually. With more than 300 participants across two professional development courses, manual processing meant delays between someone finishing a course and holding proof that they had — sometimes long ones.

300+

participants previously handled one certificate at a time

2

formats delivered per participant — accessible HTML and archival PDF

0

manual steps between course completion and certificate delivery

Design requirements I set

Fixing the delay alone would have been easy — and would have automated an inaccessible document. I set three requirements that shaped everything downstream:

  1. Dual format, by design. Every participant receives a fully accessible HTML certificate — real text, semantic structure, screen-reader friendly — and a PDF copy for records. Neither format is an afterthought; the workflow produces both from the same source.
  2. Preferred names, not system names. A certificate is personal. The workflow honors the name a participant actually goes by, rather than whatever a directory field says — a small data-handling decision that requires deliberate design, and one that participants notice.
  3. Institutional identity, accessibly rendered. The certificate carries official school branding colors — but implemented in HTML and verified for contrast, so brand identity and accessibility reinforce each other instead of trading off.

Automating an inaccessible process just delivers inaccessibility faster. The document had to be fixed first.

How the workflow runs

The pipeline connects the tools faculty already use, so nothing new had to be adopted:

  1. A participant completes the course requirements and submits a Microsoft Form.
  2. The submission triggers a Power Automate flow — no human in the loop.
  3. The flow generates the certificate, populating the participant's preferred name and completion details into the accessible HTML template.
  4. A PDF copy is produced for institutional records and archived to SharePoint automatically.
  5. The participant receives their certificate by email within moments of finishing — in both formats.

Building HTML that renders reliably in email clients — while staying semantically accessible — was one of the quieter technical fights of the project. Email rendering engines are far less forgiving than browsers, so the template had to be engineered for both audiences at once: assistive technology and Outlook.

The certificate

Below is an interactive sample with placeholder data — the design, structure, and branding approach of the real deliverable:

Live sample — placeholder dataOpen full page ↗

Results

Certificate delivery went from a manual, delayed process to an immediate, automatic one — for every participant, in a format every participant can read. The archive builds itself: each certificate is logged to SharePoint the moment it's issued, which turned record-keeping from a task into a byproduct.

What's next

The current workflow serves two professional development courses. The next step is templatizing it — abstracting the course-specific pieces so the same pipeline can be replicated for any course that requires certification, making accessible automated credentialing the institution's permanent default rather than a per-course project. That's the real goal of automation work in an educational setting: not saving one person time, but changing what the standard operating procedure is.