Testing accessible names

Which of the examples below have descriptive accessible names?

Links and buttons using content

The contents can be used to generate the accessible name for the <a> and <button> elements:

More
<a href="#">More</a>
<button>Close</button>

Button without an accessible name

<button>
  <img src="down.png" alt="">
</button>

Links and buttons using aria-label

The aria-label attribute can be used to create an accessible name that enhances the accessibility of elements.

More
<a href="#" aria-label="More about wombats">
  More
</a>
<button aria-label="Expand accordion">
  <img src="down.png" alt="">
</button>

Form controls without programmatically associated <label>

<label>Address</label>
<input type="text">

Form controls with programmatically associated <label>

The contents of the <label> attribute can be used to generate the accessible name for the <input> - as long as it is programmatically associated using matching for and id attributes

<label for="address">Address</label>
<input id="address" type="text">