keyboard webcomponent works, but no attribute-controlled callbacks