Drupal is a registered trademark of Dries Buytaert
Release: Leaflet 10.4.11 Minor update available for module leaflet (10.4.11). Release: Session Inspector 1.0.8 Minor update available for module session_inspector (1.0.8). Release: Migrate QA 2.0.4 Minor update available for module migrate_qa (2.0.4). Release: CKEditor Description List 3.0.0 Major update available for module ckeditor_descriptionlist (3.0.0). Release: FlowDrop 2.4.0 Minor update available for module flowdrop (2.4.0). Release: JWT Token Refresh 1.0.4 Minor update available for module jwt_token_refresh (1.0.4). Release: ConReg 1.0.0-beta1 First beta version released for module conreg (1.0.0-beta1). Release: AI Image Studio 1.0.0-beta8 New beta version released for module ai_image_studio (1.0.0-beta8). Usage Milestone: Statistics Counter Module statistics_counter crossed 1,000 active installs. Module Revived: Decoupled Router 2.0.7 Module decoupled_router updated after 11 months of inactivity (2.0.7).

Views No PushState

1 sites No security coverage
View on drupal.org

This module prevents the browser URL from updating when using Views AJAX exposed filters or pager. It keeps the URL static, avoiding the need to dynamically update page titles for accessibility compliance.

By default, Drupal Views updates the browser URL when AJAX-powered exposed filters or pager are used. This behavior is intended to support browser history navigation, but it comes with an accessibility requirement: when the URL changes, the page title must also be updated to reflect the current filter state and pagination, so that screen readers and assistive technologies can correctly announce the new context to users.
If your project does not implement this page title update, the URL change creates an accessibility gap that violates WCAG 2.1 success criterion 2.4.2 (Page Titled).
Views No PushState takes a different approach: instead of updating the URL, it silently prevents any pushState or replaceState call triggered by Views AJAX — for both exposed filters (field_* parameters) and the pager (page= parameter). The filtered results are still loaded via AJAX, but the URL remains unchanged, avoiding the accessibility obligation entirely.
When to use this module

Your Views AJAX results update correctly but you do not want the URL to reflect filter or pager state
You cannot or do not want to implement dynamic page title updates on filter change
You want a lightweight, zero-configuration solution with no impact on Views AJAX functionality

Requirements

Drupal 11
Views (core)

Activity

Tracked releases
4
Tracked since
May 2026
Latest release
2 months ago
Releases (12 mo)
4 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Release date
1.0.2 Stable Jun 11, 2026
1.0.1-beta1 Pre-release May 18, 2026
1.0.0-beta1 Pre-release May 17, 2026
1.0.x-dev Dev May 17, 2026