def isValidAttributeName(attrName):
    """
        isValidAttributeName - Validate that an attribute name is valid.

          AdvancedHTMLParser will silently drop invalid attributes,
            ValidatingHTMLParser will raise exception

            @param attrName <str> - The attribute name to test


            @return <bool> - True if is valid name, otherwise False
    """
    if not attrName or not attrName[0].isalpha() and attrName[0] != '_':
        return False
    for thisCh in attrName:
        if thisCh.isalnum():
            continue
        elif thisCh in ('-', '_'):
            continue
        return False
    return True
