def get_html5_kwargs(field, render_kw=None, force=False):
    """
    Returns a copy of *render_kw*  with keys added for a bound *field*.

    If some *render_kw* are given, the new keys are added to a copy of them,
    which is then returned. If none are given, a dictionary containing only
    the automatically generated keys is returned.

    .. important::

        This might add new keys but won't changes any values if a key is
        already in *render_kw*,  unless *force* is used.

    Raises:

        ValueError: if *field* is an :cls:`UnboundField`.

    The following keys are set automatically:

    :required:
        Sets the *required* key if the `required` flag is set for the
        field (this is mostly the case if it is set by validators). The
        `required` attribute is used by browsers to indicate a required field.

    :invalid:
        Set (or appends) 'invalid' to the fields CSS class(es), if the *field*
        got any errors. 'invalid' is also set by browsers if they detect
        errors on a field.

    :min / max:
        Sets *min* and / or *max* keys if a `Length` or `NumberRange`
        validator is using them.

    :title:
        If the field got a *description* but no *title* key is set, the
        *title* is set to *description*.

    """
    if isinstance(field, UnboundField):
        msg = 'This function needs a bound field not: {}'
        raise ValueError(msg.format(field))
    kwargs = render_kw.copy() if render_kw else {}
    kwargs = set_required(field, kwargs, force)  # is field required?
    kwargs = set_invalid(field, kwargs)  # is field invalid?
    kwargs = set_minmax(field, kwargs, force)  # check validators for min/max
    kwargs = set_title(field, kwargs)  # missing tile?
    return kwargs
Returns a copy of *render_kw*  with keys added for a bound *field*.

    If some *render_kw* are given, the new keys are added to a copy of them,
    which is then returned. If none are given, a dictionary containing only
    the automatically generated keys is returned.

    .. important::

        This might add new keys but won't changes any values if a key is
        already in *render_kw*,  unless *force* is used.

    Raises:

        ValueError: if *field* is an :cls:`UnboundField`.

    The following keys are set automatically:

    :required:
        Sets the *required* key if the `required` flag is set for the
        field (this is mostly the case if it is set by validators). The
        `required` attribute is used by browsers to indicate a required field.

    :invalid:
        Set (or appends) 'invalid' to the fields CSS class(es), if the *field*
        got any errors. 'invalid' is also set by browsers if they detect
        errors on a field.

    :min / max:
        Sets *min* and / or *max* keys if a `Length` or `NumberRange`
        validator is using them.

    :title:
        If the field got a *description* but no *title* key is set, the
        *title* is set to *description*.