Testing aria-describedby

Which of the examples below correctly reference a description element?

Example 1: Single visible reference

Must be your full name

Accessible description for the <input> should be: Must be your full name

HTML markup
<label for="aaa">Name</label>
<p id="aaa-hint">Must be your full name</p>
<input id="aaa" aria-describedby="aaa-hint">

Example 2: Reference to more than one source

Must be your full name

Error: This field is required

Accessible description for the <input> should be: Must be your full name Error: This field is required

HTML markup
<label for="bbb">Name</label>
<p id="bbb-hint">Must be your full name</p>
<input id="bbb" aria-describedby="bbb-hint bbb-error">
<p id="bbb-error">Error: This field is required</p>

Example 3: Reference to element hidden with display: none

Accessible description for the <input> should be: Must be your full name

HTML markup
<label for="ccc">Name</label>
<p style="display: none;" id="ccc-hint">Must be your full name</p>
<input id="ccc" aria-describedby="ccc-hint">

Example 4: Reference to element hidden with CSS

Accessible description for the <input> should be: Must be your full name

HTML markup
<label class="label" for="ddd">Name</label>
<p class="hidden" id="ddd-hint">Must be your full name</p>
<input class="input" id="ddd" aria-describedby="ddd-hint">

Example 5: Missing ID reference

There should be no accessible description for the <input>.

HTML markup
<label class="label" for="eee">Name</label>
<input class="input" id="eee" aria-describedby="eee-hint">