Form Labels
Let's look at a regular form and the guideline for having understandable labels:
Labels or Instructions
Labels or instructions are provided when content requires user input.
Example: Labelled Form
This form have two inputs for given and family name, both are required. The user can clearly see which input is for given name and for family name.
The browser might have a built in message if a user doesn't fill in a required field, but you the criteria states that a user should be able to understand before submitting the information.
Here the form uses the * symbol next to each input to tell the user that these are required. Although this is a common practice, you should consider adding this information in text, especially for forms with a mix of required and not required inputs.
Name, Role, Value
For all user interface components (including but not limited to: form elements, links and components generated by scripts), the name and role can be programmatically determined; states, properties, and values that can be set by the user can be programmatically set; and notification of changes to these items is available to user agents, including assistive technologies.
For more information about this criteria, see the Robust principle page.