added keyboard and tabindex support