Control Tab Order


I just set up 4 panel + 3 splitter layout - header & footer with a client divided into left aligned panel and client aligned panel

In the top panel are just two edits and a button (login form).

The tab order is all over the place - I've set the taborder values in the property inspector for the login form controls to 0, 1 and 2, but they don't seem to comply (if anything it seems the tab order runs in reverse, but I suspect this maybe coincidental).


Is this TMS WEB Core v1.1.1.0 you're using?

Between v1.0 and v1.1, improvements have been done in tab order handling.

Yes, I have v1.1.1.0

I cannot reproduce a problem.

TabOrder settings are page-wide in a browser. Do you take this in account?

Yes I think so.  You mean that it's not per-parent as with Win32 apps.

Apart from the 2 edits and 1 button, I've got the following on the page:

- WebPanels - 3 of them, no TabOrder property (guess they just compile to <span> or <div> tags)
- WebPageControl - TabStop set to True, but TabOrder stuck at Zero
- WebTableControl - no TabOrder property (as expected)
- I programmatically create TWebButtons inside of the last column of the WebTableControl. I set the Taborder to the row number of the table plus 4 (as there are currently 4 other components).

The top panel containing the username, password and login buttons does not tab in the correct order at all.  Pressing tab from the username field goes somewhere (haven't been able to figure it out), pressing tab again puts the focus in the browser address bar (chrome). 


I've created a small test project to illustrate the problem

Please try tabbing from the username field


There are several issues in your test project.
First of all, your login username & login password controls use the ElementID which is intended for coupling the control to a HTML element in the HTML form template. When there is coupling, it is intended that attributes are set via the HTML element in the template and not the Pascal component on the form. (HTML controls in this case UI)
Secondly, there are several other controls on the form that have TabStop=true with TabOrder=0, so there are duplicates for TabOrder=0.

Thanks for the feedback.

I see that the WebMemo has the TabOrder=0 - I fixed that.

When I run the application, I can see that each TabSheet has a tab-stop, but there's no TabOrder property for the TabSheet.

Also, the WebPageControl does have a TabOrder but it's impossible to change from 0 (change the value, exit the property and it reverts back to zero again).  This is irrespective of the setting of the TabStop property.

The speedbutton (refresh) doesn't have a TabOrder property either, but also seems to be able to receive focus ? 

(finally, I guess I have to re-read the section in the help on the templating system :) 


TWebPageControl did not properly use TabStop: this has been fixed

TWebSpeedButton should not render TabIndex: this has been fixed
The next update will have these fixes.