To avoid any confusion, I am not talking about the tab key, I am talking about a form with tabs at the top that can be selected by clicking the tab or by pressing Ctrl+PageUp/Down. The latter is not universal but seems to be a common convention, which I have adopted.
My question relates to a user data-capturing a form with that layout, and preferring to use the keyboard for all interaction.
When the user has entered the last field on the first tab, they wish to move to the second tab to continue capturing. I can think of various ways of achieving this, but none of them are very satisfactory.
Pressing the tab key on the last field could automatically open the next tab. I have experimented with this, and it works quite well. I am not sure if it is intuitive. Also I have seen forms where pressing the tab key takes you to the next section of the form - usually one or more buttons. Is this standard?
Pressing the tab key on the last field could pass control to a 'next tab' button on the form. At that point the user can press the button to open the next tab, or press the tab key again to take them to the next section. Similarly one could have a 'previous tab' button to cater for the user navigating backwards using Shift+Tab. I have experimented with this and it works fairly well, but a new user might find it confusing.
Instead of pressing the tab key on the last field, the user could press Ctrl+PageDown. This actually works at the moment, but I don't think it should be the only method available.
There could be underlined hotkeys on each tab, which makes the tab selectable by pressing Alt+hotkey. It would work well for selecting a random tab, but not so well for a smooth data-capturing experience.
My preference is for the first option. It feels quite natural in practice. 90% of the time the 'next section' of the form would only contain 'Save' and 'Cancel' buttons. The former can be invoked by pressing Enter, and the latter by pressing Escape, so it is not necessary to tab to them first.
Is there a standard convention for this, or does anyone have any other suggestions?