emilyploszaj / emi

A featureful and accessible item and recipe viewer
MIT License
244 stars 45 forks source link

[Issue] Troubles with Accessibility on EMI Config Screen #453

Open fzzyhmstrs opened 7 months ago

fzzyhmstrs commented 7 months ago

Hi, A couple issues I ran into with the EMI Config screen (1.1.2+1.20.1 fabric) regarding accessibility/keyboard usage:

1) Keyboard navigation seems basically entirely broken, or I'm not understanding the GuiNavigation system intended for keyboard navigation. Simple example with Arrow (both up/down and left/right) keys. Tab seems to do little to nothing. Note also the double (?) focus of the second and first/third buttons.

https://github.com/emilyploszaj/emi/assets/72876796/836e3643-18cc-48f3-80cf-85cfa2f2e0ae

2) Narration is effectively a non-thing. "Element 5 of 17", "Button". I didn't record with the narrator enabled, but it's easy to test, and compare versus eg. the Keybinds menu, which briefly describes an element like "Jump is bound to Space".

I'm not certain the best way to go about a solution for this, but I would hope that at least 1) tab & up/down iterate one by one through the entire config list in an orderly fashion. This isn't even just an accessibility thing, my scroll wheel is busted right now, so I was hoping to just cruise through the config with arrows 2) narration provides a hint. perhaps "[Subsection Name], Name, State", ex. "Enabled, True", "Center Search Bar, False", "Recipe Screen, Vertical Margin, 20"

There are some other challenges that I'm not sure how to overcome, such as the Number Input widgets that seem to be unique to the EMI config. The standard MC sliders conveniently dodge the double-need for up/down by changing the number with left/right.

emilyploszaj commented 7 months ago

I think EMI could do more work in regards to these issues, narration in particular would probably not be too difficult to implement but, in regards to focus... I originally had that as a priority and wanted it to work, going out of my way to implement it, but ran into pretty persistent focusing crashes that I could never resolve due in part to Minecraft's "GUI library", if you could call it that, lacking so many basic features and having so many edge cases that it's extremely difficult to build anything useful on. I ended up having to early exit and comment out most of the focusing code just to get it to stop crashing. Given adequate time, I'd want to take another crack at it, but consider it varies so much on the few versions EMI is released for and the inherent challenges... it may not be something that happens soon. I'm not very happy about this situation.