Data attributes versus the programmatic API