mathjax / mathjax/MathJax

Context Menu not accessible for low vision users who rely on zooming functionality

Open
#3,255 3 comments 0 reactions 1 assignee View on GitHub

@dpvc is already working on this.

Since Feb 28, 2025.

Accepted
Dominant language
JavaScript
Stars
10.9k
Forks
1.2k
PR merge metrics
No merged PRs in 30d

Description

Issue Summary

The context menu sub menu positioning does not meet the WCAG 1.4.10 Reflow specification which is preventing consumers of this project from meeting accessibility standards.

I've also opened up a similar issue in the context-menu repo.

Steps to Reproduce:
  1. Load any MathJax equation that triggers the context menu
  2. Using the chrome debugger tools, set the viewport to 320x256
  3. Select the Desktop interaction from the "Device Type" menu so you can still right click and not use the tap functionality that it tries to simulate in the chrome debugger.
  4. Right click to bring up the context menu
  5. Observe that sub menus overlap the parent menu and obscure information

Expected behavior is that in narrower viewports the sub menus open up underneath the parent menu without any overlap and the user can still see all of the menu options in both the parent menu and sub menu.

I've provided additional demos of the bug as well as expected behavior in the Supporting Information section

Technical details:
  • MathJax Version: 3.2
  • Client OS: Sonoma 14.5
  • Browser: Chrome 126.0.6478.127

I am using the following MathJax configuration:

MathJax = {
  options: {
      enableMenu: true,
      renderActions: {
        addMenu: [100000],
      },
      safeOptions: {
        allow: {
          URLs: 'none',
          classes: 'none',
          cssIDs: 'none',
          styles: 'safe',
        },
        lengthMax: 2,
        safeStyles: {},
        styleLengths: {},
      },
    },
  };

and loading MathJax via a webpack configuration from an npm module

Supporting information:
Demo Video

https://github.com/user-attachments/assets/e8a96b74-e14a-4e1c-8298-73cf6b5234d6

Example of non-overlap

This sub-menu component stacks the new sub menus vertically, while the user now needs to scroll to view the new menus there is no loss of information.

Demo Video

https://github.com/user-attachments/assets/0d0edb8b-b3f7-4ce9-8325-a63cf607f160

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.