MyGo
Search field

Text input

Search field

A field for searching, which Escape clears.

Search field

ui.SearchField creates a field for searching, editing a *string: a magnifying glass, the text, and a button clearing it while it holds any, as Escape does then. It shows "Search" while empty, or what Placeholder sets to say what it searches. Changed reports a change, and Submitted Enter.

if ui.SearchField(c, &app.query).Label("Search mail").Changed() {
	app.filter()
}

ui.SearchField(c, &app.pageQuery).Placeholder("Search pages, or #tag to filter")

To search as the user types, filter on Changed; for searches that take time, search on Submitted, or after a pause with c.After.

Accessibility

Assistive technology sees a search field (AXSearchField on macOS, an entry with xml-roles:searchbox on Linux, an Edit "search box" on Windows), named by its Label. A text input of your own, drawn with its own icon and clear button, asks to be one with Search, as ARIA's searchbox:

ui.TextInput(c, &app.query).Placeholder("Search").Label("Search mail").Search()

Put it, with the button that searches if there is one, in an element of Role(ui.RoleSearch), a search landmark that screen readers list and jump to (Accessibility).