{How to } Make Power Page Portal WCAG 2.1 Level A and AA Standards
Making a Power Pages portal (from Microsoft’s Power Platform) compliant with WCAG 2.1 Level A and AA means addressing accessibility across design, content, and code. Power Pages gives you a solid starting point, but compliance depends on how you build and customise it.
Here’s a practical, structured way to get there:
1. Start with an Accessible Theme
Power Pages portals use templates (often based on Bootstrap).
-
Choose themes with good colour contrast
-
Avoid heavily customised UI that breaks semantic structure
-
Ensure responsive design (important for accessibility + zoom)
👉 Tip: Use tools like contrast checkers to meet 4.5:1 ratio (AA).
2. Use Proper HTML Semantics
WCAG relies heavily on structure.
-
Use correct heading hierarchy (
h1 → h2 → h3) -
Use semantic elements (
<nav>,<main>,<footer>) -
Avoid using
<div>for everything
In Power Pages:
-
Edit templates via Portal Management app
-
Ensure Liquid templates output proper HTML
3. Keyboard Accessibility (Critical for Level A)
Every feature must work without a mouse.
Check:
-
Tab navigation works logically
-
No keyboard traps
-
Focus indicators are visible
Fix:
-
Add
tabindexwhere needed (carefully) -
Ensure modals and menus are accessible
4. Add Alternative Text
or all non-text content:
-
Images → meaningful
alttext -
Decorative images →
alt="" -
Icons → labelled via
aria-labelif needed
5. Forms Must Be Accessible
Power Pages often includes forms (Dataverse forms).
Ensure:
-
Every input has a
<label> -
Errors are clearly described
-
Required fields are indicated
-
Instructions are clear
Enhancements:
-
Use
aria-describedbyfor hints/errors -
Provide inline validation messages
6. Colour Is Not the Only Indicator
WCAG Level A/AA requires:
❌ Don’t rely only on colour
✔ Add:
-
Icons
-
Text labels
-
Underlines for links
7. ARIA (Use Carefully)
Use ARIA only when HTML isn’t enough.
Examples:
-
aria-label -
aria-livefor dynamic updates -
role="navigation"
⚠️ Don’t overuse ARIA—bad ARIA can make things worse.
8. Ensure Accessible Navigation
- Provide skip to content link
-
Use consistent menus
-
Highlight current page
-
Make dropdowns keyboard accessible
9. Multimedia Accessibility
If your portal includes media:
-
Videos → captions (AA requirement)
-
Audio → transcripts
-
Avoid auto-play
You cannot rely on assumptions—test everything.
Automated tools:
-
axe DevTools
-
Lighthouse
-
WAVE
Manual testing:
-
Keyboard-only navigation
-
Screen readers like NVDA or JAWS
11. Handle Dynamic Content (Important in Power Pages)
Power Pages often loads data dynamically.
Ensure:
-
Screen readers are notified (
aria-live) -
Focus moves correctly after updates
-
No unexpected context changes
12. Documentation & Governance
For ongoing compliance:
-
Create accessibility guidelines for your team
-
Train content editors
-
Add accessibility checks to deployment process
13. Common Power Pages Pitfalls
Watch out for:
-
Custom JavaScript breaking keyboard navigation
-
Poorly styled buttons/links
-
Missing labels in Dataverse forms
-
Modals that trap focus
-
Low contrast in branding overrides
Quick Checklist (AA Ready)
✔ Keyboard accessible
✔ Proper headings & landmarks
✔ Alt text everywhere
✔ Form labels + error messages
✔ Colour contrast compliant
✔ Captions for video
✔ Skip navigation link
✔ Tested with screen reader
Published on:
Learn moreRelated posts
{How to} use code interpreter on customer uploaded files in agent conversations in copilot studio
Hello Everyone,Today I am going to share my thoughts on the use of the code interpreter on customer-uploaded files in agent conversations in c...
{Do you know}Evaluate test sets with multiple graders in Copilot Studio
Hello Everyone,Today I am going to share my thoughts on the evaluation test sets with multiple graders in Copilot Studio.Let's get started.Yes...
{How to }Make your copilot multilingual in Microsoft Copilot Studio
Hello Everyone,Today I am going to show how to enable Microsoft Copilot Studio Multilingual.Let's get started.To make your Microsoft Copilot (...
{How to} Use IVR with Omnichannel for customer service in Copilot Studio
Hello Everyone,Today i am going to share my thoughts on using IVR with Omnichannel for Customer Service in Copilot Studio.Let's get started.To...
{How to} Enhance IVR with generative answers optimized for voice in Copilot Studio
Hello Everyone,Today I am going to share my thoughts on the Enhancing IVR with generative answers optimised for voice in Copilot Studio.To enh...
{How to} Use answering machine detection and proactive engagement tools in Copilot Studio
Hello Everyone,Today I am going to share my thoughts on how answering machine detection and proactive engagement tools work.Let's get started....
{How to } Publish Copilot Agents to WhatsApp
Hello Everyone,Today i am going to share my thoughts on how to publish the copilot agent to whatsapp channel.Let's get started.To publish a Mi...
{How to} Request Information from humans in the loop in Copilot Studio Agent flows
Hello Everyone,Today I am going to share my thoughts on how to request information from humans in the loop in Copilot Studio Agent flows.Let's...
{How to} Reassign an copilot agent's owner with Power Platform API
Hello Everyone,Today I am going to share my thoughts on how to reassign an copilot agent's owner with the Power Platform API.Let's get started...
{Do you know} Business impact of Copilot Studio Agents in Viva Insights
Hello Everyone,Today I am going to share my thoughts on analysing the business impact of Copilot Studio Agents in Viva Insights.Let's get star...
.png)