Safari & Chrome on iOS 6+ and Android 2.2+ support HTML Media Capture which allows you to take pictures with your device's camera or select an existing one:
<input type="file" accept="image/*">
Here's how it works on iOS 10:
Android 3.0+ and Safari on iOS10.3+ also support the capture
attribute which is used to jump straight to the camera.
<input type="file" accept="image/*" capture>
capture="camera"
(String) and accept="image/*;capture=camera"
(Parameter) were part of old specs and were replaced by capture
(Boolean) the W3C Candidate Recommendation.
Support documentation: this 2013 O'Reilly book and my testing