# Name Each Menu Landmark for Screen Readers

> Gives every classic menu location its own accessible name (for example "Primary menu" or "Footer menu"), so screen reader users can tell navigation regions apart.

- Type: PHP
- Runs: Frontend only
- Category: [Accessibility](https://wpide.com/library/category/accessibility/)
- Tags: menus, landmarks, aria
- Author: WPIDE Team
- Installs: 0
- Updated: 2026-10-28
- Page: https://wpide.com/library/a11y-label-menu-landmarks/

## Code

```php
// Theme location => accessible name for its <nav> container.
$wpide_menu_labels = array(
    'primary' => 'Primary menu',
    'menu-1'  => 'Primary menu',
    'footer'  => 'Footer menu',
    'social'  => 'Social links',
);

add_filter( 'wp_nav_menu_args', function ( $args ) use ( $wpide_menu_labels ) {
    $location = isset( $args['theme_location'] ) ? $args['theme_location'] : '';

    if ( ! $location || empty( $wpide_menu_labels[ $location ] ) ) {
        return $args;
    }

    if ( empty( $args['container'] ) || 'div' === $args['container'] ) {
        $args['container'] = 'nav';
    }

    if ( empty( $args['container_aria_label'] ) ) {
        $args['container_aria_label'] = $wpide_menu_labels[ $location ];
    }

    return $args;
} );
```

## Notes

Menu locations without a label in the list keep the theme's default; find your location names under Appearance > Menus > Manage Locations.

## How to use it

Install the free WPIDE plugin (https://wordpress.org/plugins/wpide/), find "Name Each Menu Landmark for Screen Readers" in its snippet library and add it in one click; or create a new PHP snippet in WPIDE (or any code snippets plugin) and paste the code above. More snippets: https://wpide.com/library/
