Fix touching elements nested inside labels

Rather than only checking if the touched element itself is a label,
check parent elements recursively to see if the touched element is
sitting within a label.