Delivering intuitive, accessible user experiences often requires working beyond what a CMS provides out of the box—especially when documentation is limited or customization paths are unclear. One recent Sitefinity project revealed a challenge in this category: the default pagination experience offered by the .NET Core Renderer's Content-List widget.
For a client with firm accessibility and UI design requirements, the widget's built-in ContentPager component wasn't flexible enough. It lacked support for critical accessibility attributes and offered no documented way to alter the markup or behavior. Its internalized implementation meant the source code could not be extended, leaving development teams with limited options.
To solve this, the team took a reverse-engineering approach. The ContentListViewModel, and specifically its Pager property, exposed the necessary logic behind the scenes. By analyzing the structure of the default output, the team built a fully custom pager template from scratch—preserving existing functionality while enabling full control over HTML semantics, CSS classes, and accessibility enhancements.
The custom pagination experience included:
- ARIA labels for improved screen reader compatibility
- Semantic markup aligned with WCAG guidelines
- Styled next/previous buttons and active state indicators
- Seamless integration with the Content-List widget's routing and logic
Despite the absence of native extension support, the new implementation worked natively within Sitefinity's architecture and maintained consistent pagination behavior across the site.
Several key lessons emerged from this effort:
- Reverse-engineering reveals hidden flexibility. Understanding a CMS's view models and output structures can uncover new ways to adapt components—even when documentation falls short.
- Accessibility should be built in, not bolted on. Prioritizing inclusive design from the outset avoids rework and supports long-term maintainability.
- Customizing at the view model level pays off. With thoughtful engineering, it's possible to tailor the user experience without compromising the stability or upgrade path of the underlying platform.
For organizations using Sitefinity's .NET Core Renderer, this approach offers a clear path forward: meet accessibility goals and design standards—without waiting on platform updates or sacrificing core functionality.