types/src/main/java/com/google/common/html/types/SafeHtmlBuilder.java
public SafeHtmlBuilder setDataAttribute(@CompileTimeConstant final String name, String value) {
    if (!name.matches(VALID_DATA_ATTRIBUTES_REGEXP)) {
      throw new IllegalArgumentException(
          "Invalid data attribute name \""
              + name
              + "\"."
              + "Name must start with \"data-\" and be followed by letters and '-'.");
    }
    return setAttribute(name, value);
  }
public SafeHtmlBuilder setDataAttribute(@CompileTimeConstant final String name, String value) {
    if (!name.matches(VALID_DATA_ATTRIBUTES_REGEXP)) {
      throw new IllegalArgumentException(
          "Invalid data attribute name \""
              + name
              + "\"."
              + "Name must start with \"data-\" and be followed by letters and '-'.");
    }
    return setAttribute(name, value);
  }
public SafeHtmlBuilder setDataAttribute ( @ CompileTimeConstant final String name , String value ) { if ( ! name . matches ( VALID_DATA_ATTRIBUTES_REGEXP ) ) { throw new IllegalArgumentException ( "Invalid data attribute name \"" + name + "\"." + "Name must start with \"data-\" and be followed by letters and '-'." ) ; } return setAttribute ( name , value ) ; }
Sets a custom data attribute, {@code name}, to {@code value} for this element. {@code value}
must consist only of letters and {@code -}.

@param name including the "data-" prefix, e.g. "data-tooltip"
@throws IllegalArgumentException if the attribute name isn't valid
@see
http://www.w3.org/TR/html5/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes
Sets a custom data attribute { @code name } to { @code value } for this element . { @code value } must consist only of letters and { @code - } .