Significance test for difference in two proportions over time with independent sampling at each time point? I'm comparing the same proportion across samples of two different populations taken over time. So, for example, the proportion of 3rd graders with blonde hair, comparing boys and girls, if every year I measured a sample of 3rd grade boys and girls. 
I thought of this perhaps as a repeated measures analysis, but decided against it because these are actually independent samples, each year there is a total new crop of 3rd graders. I'm not sure of the appropriate test for comparing the two groups over time. 
An example question would be: is there greater growth in the proportion of boys who have blonde hair over time than in the proportion of girls with blonde hair over time? 
Example of what my data would look like below:

Data:
set.seed(1)
exampledf <- 
  data.frame(year = 2007:2018,
             boys = abs(rnorm(n = 12, mean = 0, sd = 1) / 10),
             girls = (seq(12) / 15) + rnorm(12)/10)

 A: One approach is to use logistic regression, which allows you to answer most of the questions that I can think of (you were not clear exactly what you question to answer is). This is very straightforward, if your samples never overlap (once you have the same subject multiple times, you will have to do something more complicated - one option would be adding a random subject effect).
E.g. a logistic regression model with factors for group, time and the group by time interaction would give you separate estimates at each time. You can then test specific hypotheses about the difference at each fixed time or across multiple times (e.g. about the average (log-)odds ratio). If you are using R this is pretty straightforward using the glm function and the emmeans package (in SAS there's PROC GENMOD or PROC LOGISTIC and the LSMEANS statement within these and just about any other option will have something similar).
Alternatively, you could assume that the difference between group follows some particular pattern over time already in your logistic regression model. E.g. that it is always the same, in which case you just omit the interaction term, or a linear trend on the logit scale, in which case you create a second time variable (let's say time2) and put group as a factor, time as a factor and the group by time2 (with time2 as a linear covariate) interaction into the model. Or you use splines for both the time main effect and the interaction...
Added example R code:
library(tidyverse)
library(emmeans)

# Some made-up example data with some very strong time trends 
test_data <- tibble(group=as.factor(rep(c(0,1), 4)),
                    y=c(10,11,30,40,50,90,70,99),
                    n=rep(100,8),
                    time=as.factor(rep(1:4,each=2))) %>%
  mutate(value=map2(y,n,function(x,y) c(rep(1,x), rep(0,y-x)))) %>%
  unnest(cols=c(value))

# A very general model that assumes nothing about smooth (e.g. linear) time trends
lrfit1 <- glm(data=test_data, 
              value ~ group + time + group*time, 
              family = binomial(link = "logit"))

# Likelihood rato test versus model without interaction term
# (i.e. is there any difference across time in the group differences,
#  with no direct interpretation what/when this difference might be)
lrfit0 <- glm(data=test_data, 
              value ~ group + time, 
              family = binomial(link = "logit"))
test_statistic <- anova(lrfit0, lrfit1)
1 - pchisq(q=test_statistic$Deviance[2], 
           df=test_statistic$Df[2])

# Get emmeans to specify specific contrasts depending on the rest of
# your model, you might want options like weights = "proportional"
# or at = ... to specify exactly what you want - once you take 
# contrasts this usually no longer matters.
lrfit1_emmeans <- emmeans(object=lrfit1, ~ group*time)

# Examples of contrasts:
# Comparison of group 1 to 0 (log-odds ratio) for each time
contrast(lrfit1_emmeans, by="time", method="revpairwise")
# Comparison whether the difference between group 1 and 0 is bigger 
# at time N vs. time M
contrast(lrfit1_emmeans, method="revpairwise", interaction=T)

