# fill

The `fill` step.

Types a value into a field. The target must be visible and editable; values typed into `type=password` fields are redacted.

Type: `target`

## Keys

| Key | Type | Description |
|---|---|---|
| `fill.clear` | `boolean` | Whether the field is cleared before the value is entered. Defaults to `true`. |
| `fill.submit` | `boolean` | Whether Enter is pressed after the value is entered. Defaults to `false`. |
| `fill.value` | `string` | The text to enter, a template such as `{{inputs.email}}`. |

Every step also takes the [common step keys](https://docs.kaab.ist/reference/dsl/steps#common-keys): `expect`, `id`, `if`, `name`, `on_error`, `optional`, `retry`, `side_effect`, `timeout_ms`, `x_kaab`.

## Example

```json
{
  "fill": "#code",
  "value": "{{vars.code}}",
  "submit": true
}
```

From the contract fixture `hosted-await-input`, a program the test suite validates.
