(I have been maintaining my own version of impress.js since bartaz has not been actively working on it for quite some time, so I am well-versed in the keybindings code as well.)
The real solution is to make Tab move to the next slide, not the problem :-)
The issue lies in the fact that when using a browser, pressing the tab key will typically navigate to the "next" link or form field. If this link is located outside of the current slide, the browser will scroll to that location, disrupting the flow of the presentation. Therefore, impress.js must disable the tab key.
Instead of simply disabling it, bartaz connected it to the next() function. If you prefer the Tab key to not advance to the next slide, you can remove that code, but you would still need to call event.preventDefault() to prevent the browser from responding to the Tab key.
In my version of impress.js, I enhanced the functionality for using form fields (link) , so that if you are typing in a text input field and press the left arrow, the presentation will not progress to the next slide but rather move the cursor within your text field, as expected. However, I have retained the Tab key feature: it will move to the next slide instead of the next form field (or link).
While it might be possible, it would be challenging to determine if the next form field is still within the same slide or not, and decide whether moving to that field is appropriate.
UPDATE: Here is the impress.js issue discussing the Tab key behavior.