The above offered fix code does not quite work. Below is what worked for me, derived and fixed from the snipprt above.

Code:
if(e.getKey() === e.TAB){
    e.stopEvent();
    var form = f.ownerCt;
    var i = form.items.indexOf(f);
    var last = form.items.indexOf(form.items.last());
    do {
        i++;
        if (i > last) i = 0;
        field = form.items.itemAt(i);
    } while (field.readOnly);
    field.focus(true, true);
}