How can I force Visualforce to include empty attributes which I have specified?
Here is another way to do it w/o javascript:
Set the value to a VisualForce function that evaluates to nothing:
<apex:page standardController="Contact" >
<apex:form>
<select required="required">
<option value="{!IF(1=1,'','')}">--</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
<apex:commandButton value="Test Submit" action="{!save}" />
</apex:form>
It will send the value attribute to the browser:
The browser will require it now: