Keyboards have variable heights, widths, etc, so they at least have to know what the keyboard looks like.