Input components are designed to make it easy to assign labels to form fields. Labels build a programmatic relationship between a form field and its textual label. When using a placeholder in an input component, set the label attribute for accessibility.
Use lightning:input to create accessible input fields and forms. You can use lightning:textarea in preference to the <textarea> tag for multi-line text input or lightning:select instead of the <select> tag.
<lightning:input name="myInput" label="Search" />
If your code fails, check the label element during component rendering. A label element should have the for attribute and match the value of input control id attribute, OR the label should be wrapped around an input. Input controls include <input>, <textarea>, and <select>.
Here’s an example of the HTML generated by lightning:input.
<!-- Good: using label/for= --> <label for="fullname">Enter your full name:</label> <input type="text" id="fullname" /> <!-- Good: --using implicit label> <label>Enter your full name: <input type="text" id="fullname"/> </label>