Loading...

{How to } Make Power Page Portal WCAG 2.1 Level A and AA Standards

{How to } Make Power Page Portal WCAG 2.1 Level A and AA Standards
Hello Everyone,



Today I am going to share my thoughts on how to make power pages portal according to the WCAG 2.1 Level A and AA Standards.






Let's get started.


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 tabindex where needed (carefully)

  • Ensure modals and menus are accessible



4. Add Alternative Text

or all non-text content:

  • Images → meaningful alt text

  • Decorative images → alt=""

  • Icons → labelled via aria-label if 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-describedby for 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-live for 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


10. Test with Real Tools

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






That's it for today.

I hope this helps.
Malla Reddy Gurram aka @UK365GUY


Published on:

Learn more
Need help with this product?

We can help you with {How to } Make Power Page Portal WCAG 2.1 Level A and AA Standards

If you want help implementing, troubleshooting, or improving this product, contact us and we’ll point you in the right direction.

MICROSOFT DYNAMICS CRM /365  BLOG
MICROSOFT DYNAMICS CRM /365 BLOG

This blog is all about MS DYNAMICS CRM DEVELOPMENT, C# .NET,SQL SERVER

Share post:

Related 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...

5 months ago

{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...

5 months ago

{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 (...

5 months ago

{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...

5 months ago

{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...

5 months ago

{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....

5 months ago

{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...

5 months ago

{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...

5 months ago

{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...

5 months ago

{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...

1 year ago

Newsletter

Get the latest Dynamics 365 and Power Platform content in your inbox

A curated digest of community blogs, product news, videos, and podcasts — delivered without the noise.

Weekly updates Unsubscribe anytime Fresh community picks
We use your email only for the newsletter and you can unsubscribe at any time.
By subscribing, you agree to the privacy policy.