The AP’s own rules say an 18yo is an adult, not a teen. In a light-hearted story about a high school event where some are 17 and some are 18, you could get away with calling them all “teenagers,” but in a serious story, it’s crucial to be consistent. This suspect is a white man.
Shortly after the “teenager” tweet, the AP released another tweet referring to “a white gunman in military gear.” It’s only fair for me to acknowledge they seem to be responding to their audience. (Nobody’s perfect, of course, but @AP & lots of us on the planet can do better.)