I'm developing an App for disabled people to make any website accessible to them. One of the features is Keyboard Navigation using the TAB key.
Problem is that there are dropdowns that are depending on :hover states, and from investigating other Stackoverflow questions, simulating :hover state is just not possible. (Although Chrome has this feature built-in the developer tools so maybe it is?).
My solution is a JS solution. When a LI element has inner lists, I add a class to the root level and set display, visibility and opacity all to show. This works really really well, except for when websites coded the drop downs is such a way that the entire thing is depending on :hover for example:
li:hover > ul { display: block; position: absolute; width: 100%; } ...
if the've coded many attributes to the hover state, instead of just the display / visibility / opacity, the dropdown in my method will show, but without its real design. This is not the end of the world, but disabled people deserve to use websites as intended.
So, I'm looking for a solution to either really simulating a :hover state, or, to copy the entire styles of the hover state and bind them to my class.
Note that styles of inner and long selectors such as - li:hover ul li div p {} - should also be copied (obviously) so using $el.css() may not be that easy.