Skip to content
hardsenior1 min read #frontend #html

When should you use a button instead of a link? ​

Answer ​

Use a link when the action navigates to another URL and a button when it changes state or performs an action on the current page. This distinction gives keyboard and screen-reader users the interaction they expect.

Context ​

HTML supplies the document’s meaning and structure. Prefer native elements first, then add only the attributes needed to connect controls, describe state, or support responsive delivery.

Example ​

html
<label for="email">Email address</label>
<input id="email" name="email" type="email" autocomplete="email" />

The explicit label gives the input an accessible name and makes the label itself clickable.

Practical considerations ​

  1. Choose the approach from the requirement and constraints, not from habit.
  2. Include validation, error handling, and cleanup where the boundary requires them.
  3. Verify the observable result with focused tests or measurement.

Follow-up prompts ​

  • What failure mode would you expect if this were implemented incorrectly?
  • How would you test this behaviour?
  • What changes when the feature must scale to a larger application or team?

In practice ​

For this hard-level topic, make assumptions explicit, choose the smallest safe implementation, and verify the behavior at the relevant boundary.