getCSSName = function getCSSName(name) {

        // Convert name from possibly-CamelCase to hyphenated lowercase
        var cssName = name
               .replace(/([a-z])([A-Z])/g, '$1-$2')
               .replace(/[^A-Za-z0-9]+/g, '-')
               .toLowerCase();

        return cssName;

    }
Given an arbitrary string representing the name of some component of the
on-screen keyboard, returns a string formatted for use as a CSS class
name. The result will be lowercase. Word boundaries previously denoted
by CamelCase will be replaced by individual hyphens, as will all
contiguous non-alphanumeric characters.

@private
@param {String} name
    An arbitrary string representing the name of some component of the
    on-screen keyboard.

@returns {String}
    A string formatted for use as a CSS class name.