This is a weird and interesting situation. There are a number of controls that present to me, by vision, as links, but that which NVDA (and, I'd have to presume JAWS) don't land on, but instead land on the button equivalent that is entirely hidden from view. That, in and of itself, is not all that unusual, as there are often invisible controls on web pages placed there specifically to serve accessibility needs.
What is peculiar, though, is that if I go to the first button, which is a hidden Hide button for the Contents list, and activate it, the contents list disappears, as expected, the link I see changes to "show," and the hidden button I just activated is changed to a Show button. In Chrome, I just keep getting Hide/Show announced as I toggle the button state by activating it, however, in Firefox I'm getting the announcement, "Show button, Checked," (or Unchecked) as I toggle the state back and forth between Hide and show. It's really, really peculiar for a button to be announced as checked or unchecked, as that's not a property associated with a button. It works just like I'd expect it to, either making content shown or visible, but I have absolutely no idea why the "checked/unchecked" bit is being announced and why what's being exposed to the screen reader appears to be different in Chrome versus Firefox for this sort of control.
I never have encountered an "On" button, though.
Brian - Windows 10 Pro, 64-Bit, Version 1809, Build 17763
The problem with values voting is that it completely puts to the side or totally obviates past performance, the effectiveness of policies proposed, intelligence and judgment — you know, the qualities that actually matter for someone who wants to lead the free world.
~ Zareh Delanchian