Es que sí lleva un valor:
on. Es el valor por defecto en caso de no especificar ninguno. Pero bien puedes poner:
Código:
<input type='checkbox' name='aprobado' value='si'>
y el valor será
si. Lo que sucede es que a fin de cuentas, es indistinto, porque un checkbox sólo tiene dos posibles valores:
marcado o no marcado, más allá de la semántica de un problema en particular. En el caso de HTML, supongo que por ahorro al momento de enviar los datos, las casillas marcadas, simplemente no se mandan, de manera que todo se reduce a si el valor está presente (casilla marcada) o no (casilla desmarcada), siendo indiferente el valor real que tome.
// Saludos