a11y.meta-refreshThe page reloads or moves on by itself
Why it matters
A <meta http-equiv="refresh"> with a delay reloads the page, or sends it somewhere else, when the time is up, whether or not the visitor has finished. W3C: "If the time interval is too short, and there is no way to turn auto-refresh off, people who are blind will not have enough time to make their screen readers read the page before the page refreshes unexpectedly and causes the screen reader to begin reading at the top. Sighted users may also be disoriented by the unexpected refresh." A delayed redirect is "an unexpected change of context that may interrupt the user."
An instant redirect (a delay of 0) is fine: "It is acceptable to use the meta element to create a redirect when the time-out is set to zero, since the redirect is instant and will not be perceived as a change of context." So is a delay of more than 20 hours, the success criterion's own exception. Anything between fails. axe-core checks the same as "Delayed refresh under 20 hours must not be used".
Sources: WCAG 2.2, 2.2.1 Timing Adjustable (Level A); failures F40 (a timed redirect) and F41 (a timed reload); axe-core's meta-refresh.
How to fix it
Take the tag out. A page that has moved should redirect from the server, which is instant:
location = /old-cakes { return 301 https://www.example.com/cakes; }A page that keeps something up to date (scores, prices, a queue) should update that part with JavaScript rather than reload, and give a way to pause it. A "you will be taken to…" page should have a link to press instead of a countdown.