Reading the GLSL ES3.0 spec it lists "attribute" and "varying" as reserved keywords that will result in an error.
In GLES3, you must qualify input variables with "in" and output variables with "out".
So in the vertex shader,
attribute -> in
varying -> out
And in the fragment shader
varying -> in
Section 4.3 in the spec (storage qualifiers) has all the details.