generalized tab-cycling over widgets